Azure Web サイトにサインインした後、次のエラーが発生します。
AADSTS50194: アプリケーション「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx」は、マルチテナント アプリケーションとして構成されていません。「2018 年 10 月 15 日」以降に作成されたこのようなアプリケーションでは、/common エンドポイントの使用はサポートされていません。テナント固有のエンドポイントを使用するか、アプリケーションをマルチテナントとして構成してください。
ベストアンサー1
このメッセージを受け取っている Azure 管理者の場合、エラー メッセージに記載されている理由がまさにその原因である可能性があります。つまり、common
API エンドポイントを使用してテナント固有のアプリケーションに MSFT ログインすることができないということです。
私の場合、サンプル コードを使用してアプリ登録を構成していましたが、サンプル コードは新しいエンドポイントで変更する必要がありました。つまり、次の行です。
let kAuthority = "https://login.microsoftonline.com/common"
次のように変更する必要がありました:
let kAuthority = "https://login.microsoftonline.com/MY_TENANT_NAME"
Azure 組織のテナント名は、Azure 検索バーに「テナント ステータス」と入力すると取得できます。
ザマリン: 上記の注意事項は MSAL iOS では機能しましたが、Xamarin MSAL Android/iOS では、メイン呼び出しで権限を設定する直接的な方法はありませんでした。対話型ログイン呼び出しにチェーンする必要があります。
たとえば、ここにあるサンプルコード:
authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
.WithParentActivityOrWindow(App.ParentWindow)
.ExecuteAsync();
次のように変更する必要があります:
authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
.WithAuthority("https://login.microsoftonline.com/YOUR_TENANT_NAME")
.WithParentActivityOrWindow(App.ParentWindow)
.ExecuteAsync();