問題タブ [msal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure AD B2C および Xamarin で使用する MSAL または ADAL ライブラリ
2016 年 10 月の時点で、Microsoft 認証ライブラリ (MSAL - NuGet パッケージ: Microsoft.Identity.Client ) は、Xamarin (iOS/Android) および Azure AD B2C サービスで使用するための正しい/唯一のライブラリであることに変わりはありませんか? このライブラリ (MSAL) はアルファ版としてのみ利用可能であり、積極的に保守または開発されている状態ではないようです (4 月以降)。
Active Directory Authentication Library (ADAL - NuGet パッケージ: Microsoft.IdentityModel.Clients.ActiveDirectory ) は、Microsoft の "one-Azure-authentication-library-to-rule-them-all" として意図されており、Xamarin をサポートしているという兆候があります。また、積極的に維持されており、「アルファ」または「ベータ」の状態ではありません。
Microsoft が過去に Azure AD B2C 開発者に MSAL ライブラリの使用を指示したことを理解していますが、代わりに ADAL ライブラリを使用して Xamarin アプリで Azure AD B2C ユーザーを認証することは可能ですか? これを行う方法を示す、誰かが私に指摘できるブログやサンプルコードはありますか?
azure-active-directory - 管理者の同意は、v2 アプリのスコープ User.Read.All では機能しません
ここから「v2.0 エンドポイントでマルチテナント デーモンを構築する」ための Azure サンプルをダウンロードしました: https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2
にアプリケーションを登録しapps.dev.microsoft.com
、Application Permission スコープを User.Read.All に設定し、コードの Startup.Auth.cs でアプリケーション ID と生成されたパスワード シークレットを置き換えました。
サンプル コードは問題なく動作しますが、管理者の同意付与が機能していないようです。
のコードはAccountController.RequestPermissions()
、管理者の同意要求を正常に作成して送信します。同意ページに正しいスコープが表示されます: 「すべてのユーザーの完全なプロファイルを読み取る」。同意すると、https://localhost:44316/Account/GrantPermissions?admin_consent=True&tenant=my-tenant-idにリダイレクトされ、許可が成功したことが示されます。その後、Azure portal のエンタープライズ アプリケーションにもアプリが表示されます。
ただし、https://graph.microsoft.com/v1.0/usersを呼び出すとUsersController.Index
、「403 Forbidden」という結果になります。Fiddler のエラーの詳細は次のように表示されます。
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation."
そのリクエストの JWT Bearer トークンには、正しいテナント ID と単一のロール「User.Read.All」が保持されています。
私のアカウントはこのテナントのグローバル管理者であり、graph.microsoft.io でユーザーにクエリを実行できます。
6 月 30 日付けのこの回答は、アプリ モデル v2 で admin_consent を使用することはまだできないことを示唆しています。ただし、ダウンロードしたサンプルは 9 月下旬のもので、まさにこのシナリオを示しているため、それがサポートされることを期待していました。
admin_consent はアプリ モデル v2 で既にサポートされていますか? もしそうなら、誰かが私が何がうまくいかないのかを見つけるのを手伝ってくれますか? ありがとう。
c# - MSAL を介して Azure AD から取得したトークンはすぐに期限切れになります
このブログ投稿に従って、xamarin フォーム アプリで MSAL を使用して Azure AD での認証を実装しました。
正常に動作しているように見えました.ADアカウントでログインできる期待されるログインダイアログが表示され、アクセストークンを含むAuthenticationResultが返されます。
ただし、トークンを使用しようとすると、API から 401-Unauthorized が返されます。属性を使用して[Authorize]
、Azure の appservice で [要求が認証されない場合に実行するアクション] を [Azure Active Directory でログイン] に設定しようとしました。しかし、どちらの場合も失敗します。
返されたアクセストークンを確認すると、トークンがすぐに期限切れになるため、401を説明するトークンを要求した瞬間の正確なDateTimeがExpiresOnプロパティに含まれていることに気付きました。
[Authorize]
API でを確認できるように、Azure をすべて許可するように設定して削除しようとしましたRequestContext.Principal.Identity
が、IsAuthenticated プロパティは false であり、他の ID プロパティには私の情報が含まれていません。
トークンが取得された時点で有効期限が切れる理由や、しばらくの間これに固執しているため、何が間違っているのかを誰かが教えてくれることを願っています.
私のコード:
と
android - Android で MSAL UserTokenCache が永続化されない
Azure B2C と MSAL を使用してユーザーの認証を試みましたが、ユーザー エクスペリエンスの問題に遭遇しました。
アプリをデバッグするときは、既に認証されており、トークンがまだ有効であるため、通常はサインインする必要はありません。ただし、Debug から Release に切り替えてアプリをテストすると、AquireTokenSilentAsync メソッドは UserTokenCache から有効なトークンを取得できないようです。私の仮定は、アプリが閉じられるたびに UserTokenCache がクリアされるということです。どういうわけか、これはデバッグ モードでは発生しません。これは、デプロイ間でキャッシュが保持されるためだと思います。
この方法で認証結果を取得していますが、さまざまなオーバーロードを試しましたが成功しませんでした。
AuthenticationResult ar = await App.PCApplication.AcquireTokenSilentAsync(App.Scopes, "", App.Authority, App.SignUpSignInpolicy, false);
そのため、サインインしてアプリを閉じて再入力すると、再度ログインする必要があります。
MSAL がまだプレビュー段階であることは十分承知していますが、この動作に関連する問題は (まだ) 見つかっていません。これは既知の問題ですか。回避策はありますか?
MSAL ソース コードを見ると、UserTokenCache が永続化のために Android SharePreferences を使用していることがわかります。これはデバッグ モードで完全に機能します。したがって、これはバグ/実装の欠落であるか、明らかな何かが見当たらない..
facebook - 理論的には、Azure AD または B2C で Facebook SDK を認証に利用することは可能ですか?
私は iOS アプリケーションを持っており、顧客は次の方法で Facebook にログインできます。
- ウェブブラウザ
- 設定のネイティブ構成
- Facebookアプリ/メッセンジャー
MSAL または ADAL を使用して指示に従うと、認証に Safari ブラウザーのみを使用しているようです。
オプション 2 またはオプション 3 内に既に保存されている資格情報を (理論上でも) 活用する方法はありますか?
MSAL/ADAL がオプション 2 または 3 を活用するには何が必要ですか?
microsoft-graph-api - ConfidentialClientApplication を使用してグラフ (Group.ReadWrite.All) への AppOnly 要求を実行する方法
MSALMicrosoft.Identity.Client.ConfidentialClientApplication
を使用して、アプリのみの Microsoft Graph - グループ操作を実行してきました。
私は次のステップで立ち往生しています:
エラーが発生しますfailed_to_acquire_token_silently
。
エラーが発生しますinvalid_scope
。
どちらの方向に進むべきかわからない。
ノート:
PublicClientApplication
同じコードで正常に動作します- アプリには AppOnly
Group.ReadWrite.All
と Delegateの両方のGroup.ReadWrite.All
アクセス許可があります PublicClienApplication
不要な UI ダイアログが表示される...