2017-09-14 7 views
0

私は、グループメンバーシップを使用して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 ?、私は根本的に何かここで間違っている?

誰でもお手伝いできますか?

+0

誰:あなたは、以下のリンクを参照してください、マイクロソフトグラフRESTに関する権限についてthis link

より詳細からアクセストークンをデコードすることができますか?これは大規模な問題です、私は私のdev&qaのバージョンのためのセキュリティの周りの機能をテストすることができませんazure :-( – proteus

答えて

0

Group.Read.AllGroup.ReadWrite.AllDirectory.Read.AllまたはDirectory.ReadWrite.Allが必要とされ、マイクロソフトグラフを経てグループを読み取ること。

この問題が発生したアプリに許可した権限は何ですか?また、トークンのscpのクレームを確認して、適切な権限がすでに付与されていることを確認してください。

Microsoft Graph permissions reference

+0

'スロット'は、メインのアプリケーションのアクティブなディレクトリ設定を継承する?これはケースではないようです – proteus

+0

あなたはAzure Active Directoryとどのように対話しましたか?OpenID OWINコンポーネントまたはEasy Authの使用方法OpenID OWINコンポーネントを使用している場合は、設定方法によりますが、ほとんどのコードは変更する必要はありませんリダイレクトURLを除きます。また、Easy Authを使用している場合は、展開されたスロットに対して再度設定する必要があります。 –

+0

私OpenIDを使用して、私の質問に更新を追加しました – proteus

関連する問題