問題タブ [adal]

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.

0 投票する
1 に答える
736 参照

c# - TypeScript で記述された Angular モジュールに匿名プロバイダーを追加する

.jsタイプスクリプトを使用して記述されたAngularモジュールにファイルからプロバイダを(匿名で)注入することは可能ですか? モジュール定義内で失敗する typescript をコンパイルしようとしています。

タイプスクリプト表記で角度を使用して書かれた基本的な十分なモジュールがあります。adalAuthenticationServiceからのミックスにプロバイダーの定義を追加しようとしていadal-angular.jsます。プロバイダーが.d.tsフォーマットされていないため、参照として使用できません。プロバイダーをに変換すること.d.tsは、今のところ問題外です。そのため、匿名のインジェクション オプションが残っています (そのようなオプションがある場合)。

コントローラの定義

アプリ定義

基本的にadalAuthenticationService、依存関係として注入されたコンパイル段階をバイパスしようとしadal-angular.jsています。含まれているためです。したがって、理論的には、ページがレンダリングされると取得されるはずです。

0 投票する
1 に答える
783 参照

azure - バックグラウンド ジョブからの AcquireToken()

Azure Active Directory とADALを使用して、Office 365 の Exchange EWS と OAuth でやり取りしています。

私はあなたが使用できることを知ってauthContext.AcquireToken()おり、すべての oauth を管理します。トークンを保存、使用、更新し、必要に応じてユーザー資格情報を要求します。私の場合の問題は、Azure バックグラウンド Web ジョブで対話が必要なため、ユーザーの資格情報を要求できないことです。

私が試したのは、ユーザーが からの URL にアクセスできるようにする認証コードを取得することでしたGetAuthorizationRequestURL()。次にAcquireTokenByAuthorizationCode()、更新トークンを使用してトークンを取得し、データベースに保存します。そのため、バックグラウンド ジョブが EWS に接続する必要がある場合は、AcquireTokenByRefreshToken().

このアプローチは機能しますが、14 日後に有効期限が切れたときに新しい更新トークンを取得する方法がわかりません。

バックグラウンド ジョブで ADAL を使用するためのリフレッシュ トークンまたはより良いアプローチを更新するにはどうすればよいでしょうか?

よろしくお願いします!!

0 投票する
1 に答える
4425 参照

angularjs - ADAL JS で Azure AD と OAuth2 の暗黙的な許可を使用してクレームをグループ化する

バックグラウンド

AngularJS フロントエンドと Web API バックエンドを備えたマルチテナント SaaS 製品を Azure で開発しています。認証に Azure AD を使用し、ADAL JS に接続しました (OAuth2 の暗黙的な許可を使用)。マルチテナント アプリケーションであるため、お客様は自分の Azure AD (オンプレミス AD に接続されている場合と接続されていない場合があります) に対して認証を行うことができます。

これまでのところ、これはすべてうまく機能しています。ADAL JS によってユーザーが Azure ログイン ページに移動し、ユーザーが認証されると、OAuth2 トークンが発行されます。この JWT トークンは、Azure からの受信クレームをアプリケーション クレームにマッピングするための独自のクレーム変換プロセスを持つベアラー トークンとして、すべての API 呼び出しと共に送信されます。

クレーム変換プロセスで個々のユーザーを指定するのではなく、AD グループごとに行うようにしています。これにより、お客様はセキュリティ グループを AD に持つことができ、アプリケーションはそれを使用して正しいアプリケーション クレームにマップします。

問題

AAD アプリケーション マニフェストで設定されているgroupsにもかかわらず、受け取る JWT トークンにはプロパティが含まれていません。それ以来、ヴィットリオからのこのツイートを読んで、groupMembershipClaimsSecurityGroup

暗黙的な許可は、クエリ文字列でトークンを返すため、これらのクレームを送信しません。最大長を超えて簡単に吹き飛ばすことができます。

さらに調査したところ、Vittorio からのこの StackOverflow の回答も見つかりました。

私が確認したところ、暗黙の許可の場合、常に超過請求を介してグループを受け取ります。https://github.com/AzureADSamples/WebApp-GroupClaims-DotNet/tree/master/WebApp-GroupClaims-DotNetを参照してください- グループを取得するための超過請求を処理する方法が示されています。

JWT トークンを確認しましたが、超過請求は含まれていません ( および で識別され_claim_namesます_claim_sources)。私は間違いなく Azure AD の 2 つのグループのメンバーです。

また、暗黙の許可トークンでグループ情報を取得できるかどうか (直接的または間接的) について、2 つの矛盾するステートメントがあるようです。

質問 1: グループ情報を取得するために使用できる超過請求を取得する必要がありますか? その場合、請求が確実に送られるようにするために何かする必要がありますか?

グラフ API

グラフ API でユーザーへのリンクを使用して超過請求を取得できるかどうか、またはユーザーのグループを取得するためにリンクを手動で作成する必要があるかどうかにかかわらず、グラフ API で認証する方法が少しわかりません。

(ADAL JS から) ベアラー トークンを含む要求を受け取った後、バックエンドからグラフ API に接続する必要があります。

質問 2: 同じベアラー トークンをグラフ API に送信して、そのユーザーのディレクトリ情報を読み取ることはできますか? または、ユーザーではなくアプリケーションのコンテキストで、アプリケーションから Graph API テナントに直接認証する必要がありますか?