私は、グループメンバーシップを使用してWebアプリケーションへのアクセスを制御するために、azureアクティブディレクトリを使用しています。私は2つのグループを持っています(ユーザ& admin)。私のアプリでは、ユーザープロファイルを読み込んですべてのグループを読むために、Microsoftグラフのアプリケーション権限をセットアップしました。azureのアプリサービススロット間でのMicrosoft Graph APIアクセスの問題
私はアプリでグラフapiを使用して、使用可能なすべてのグループのリストを取得します。これは私のローカル開発環境では正常に動作し、私は紺碧の上にアプリケーションに展開するときに、プロセスも正常に動作します。問題は、アプリケーションサービス環境の2つの「スロット」にアップロードしてテストするときに発生します。私は使用している2つ、開発版とQA版を持っています。これらのいずれかからグラフAPIにアクセスしようとすると、私はこのエラーを受け取ります。
コード:Authorization_RequestDenied メッセージ:操作を完了するための十分な権限がありません。
私が最初に開発を始めたとき、私はこれを手に入れていましたが、アプリのアクセス許可を設定して許可して解決しました。では、なぜ私は他の2つのアプリでこれを取得していますか?私はテストするためにこれらを必要とします(QAのデベロッパーとテストチームとして) デベロッパー& qaスロットが同じように動作するために必要な他のステップはありますか?
**これは問題はアプリがで実行しているとされている更新
**それは私のメインアプリではなく、スロット
GraphServiceClient graphClient = new GraphServiceClient(new AzureAuthenticationProvider());
Group group = await graphClient.Groups[admin].Request().GetAsync();
で[OK]を動作しますが、私はグラフAPIにアクセスする方法であります私のスロット。どちらも私の開発者& QAスロットは、ユーザーがログインした後にClaimsIdentityオブジェクトのグループ情報を持っていません.Iveは、ローカルで実行するとClaimsidentityオブジェクトの情報をログに記録し、Azure、が存在する場合、azure qa &開発環境で実行すると、グループはClaimsidentityオブジェクトに存在しません。これはなぜでしょうか?スロットはアクティブなディレクトリ設定を継承しますか、それとも別々に設定する必要がありますか?私はかなり青信号とセキュリティモデルに新しいので、どんな助けも大歓迎です。
私はazureにリダイレクトURLを設定していますが、私のweb.configでは、環境ごとに適切なリダイレクトを使用して環境ごとに異なる変換を使用しています。 OpenIDの
を使用して
イム**は更新2
私はスロットを作成したとき、私は私のメインのアプリに(コピー)、それらをベース。各スロットはweb.configファイルに独自のClientIDとシークレットを持っていますか?また、各スロットをアクティブディレクトリのアプリケーションとして登録する必要がありますか?現時点では私のメインのアプリはここで
は私のアプリのそれぞれからのクレームはあなたがQAアプリは紺碧
Claim type - ver
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
Claim type - http://schemas.microsoft.com/identity/claims/tenantid
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
Claim type - onprem_sid
Claim type - nonce
Claim type - http://schemas.microsoft.com/identity/claims/objectidentifier
Claim type - name
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Claim type - ipaddr
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Claim type - http://schemas.microsoft.com/claims/authnmethodsreferences
Claim type - c_hash
Claim type - aio
Claim type - exp
Claim type - nbf
Claim type - iss
Claim type - iat
Claim type - aud
認証タイプにはグループ
私のQAスロットを持っていない見ることができ、ある登録されています;クッキーアズール
で私のメインのApp
Claim type - ver
Claim type - http://schemas.microsoft.com/identity/claims/tenantid
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
Claim type - http://schemas.microsoft.com/identity/claims/objectidentifier
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
Claim type - nonce
Claim type - name
Claim type - ipaddr
Claim type - http://schemas.microsoft.com/identity/claims/identityprovider
Claim type - groups
Claim type - groups
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Claim type - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Claim type - c_hash
Claim type - http://schemas.microsoft.com/claims/authnmethodsreferences
Claim type - exp
Claim type - aio
Claim type - nbf
Claim type - iss
Claim type - iat
Claim type - aud
認証タイプ。クッキー
**私は、登録済みのアプリケーションとしてAzureのアクティブディレクトリにQAアプリケーションを追加しようとしましたが、私はclientIDと秘密を持っています。私の主なアプリとしてのグラフ。私はクライアントID &を私のweb.configトランスフォームに含めました。したがって、基本的に私のメインアプリケーションと同じ方法でセットアップして、クレームIDのグループ情報はありません。どのように地球上でこれは働くことを意味していますか?
***別の更新付与
権限が
ウィンドウがアクティブディレクトリ AZURE - 委任権限:、すべてのグループを読んで、すべてのユーザーに完全なプロファイル
マイクロソフトグラフ 読む - アプリケーションの許可:読み取りすべてをユーザー全体のプロファイル、すべてのグループの読み取り - 委任されたアクセス許可:すべてのグループの読み取り、全ユーザーの全プロファイルの読み取り、サインイン、およびユーザープロファイルの読み取り
ちょうどテストとして、私はまたアクティブディレクトリとMicrosoftのグラフのすべての許可を与えましたが、それは何の違いもありませんでした。
これは今私にとって深刻な問題になってきています。他に何かできることはありますが、私の主なアプリではうまく動作しますが、「スロット」ではなく、Azure ?、私は根本的に何かここで間違っている?
誰でもお手伝いできますか?
誰:あなたは、以下のリンクを参照してください、マイクロソフトグラフRESTに関する権限についてthis link
より詳細からアクセストークンをデコードすることができますか?これは大規模な問題です、私は私のdev&qaのバージョンのためのセキュリティの周りの機能をテストすることができませんazure :-( – proteus