0

CSOM/REST認証ベアラヘッダー要求を使用してトークンを使用してSharePointに要求を作成しようとしています。アンドロイドADALアプローチを含む他のすべてが動作しない動作します1つのリンクのみ/例がありJWT CSOM/REST Azure Active Directory

C# CSOM Sharepoint Bearer request from azure active directory

:以下のこの質問に関連しています。

https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/

彼らは失敗した1がuser_impersonateを持って、我々はJWTパーサーにトークンを見たとき、私たちはSCP値が異なっていることがわかります、限り、トークンを返していないようですがありますが、作業中のものはです。AllSites.Manage AllSites.Read AllSites.Write MyFiles.Read MyFiles.Writeです。 aud URLもまた異なっていますが、これらの問題のいずれか、または両方が問題であり、どのように動作させるのですか?

これが失敗したものです:

{ 
    "aud": "https://srmukdev.sharepoint.com/", 
    "iss": "...", 
    "iat": ..., 
    "nbf": ..., 
    "exp": ..., 
    "acr": "...", 
    "aio": "...", 
    "amr": [ 
    "pwd", 
    "mfa" 
    ], 
    "app_displayname": "...", 
    "appid": "...", 
    "appidacr": "0", 
    "e_exp": ..., 
    "family_name": "...", 
    "given_name": "...", 
    "ipaddr": "...", 
    "name": "...", 
    "oid": "...", 
    "onprem_sid": "...", 
    "platf": "3", 
    "puid": "...", 
    "scp": "AllSites.Manage AllSites.Read AllSites.Write MyFiles.Read MyFiles.Write", 
    "sub": "...", 
    "tid": "...", 
    "unique_name": "...", 
    "upn": "...", 
    "ver": "1.0" 
} 

答えて

1

をアクセストークンは、そのaud主張を確認することで、特定のリソースのためです:

{ 
    "aud": "https://srmukdev.onmicrosoft.com/3Squared-Api-Test", 
    "iss": "...", 
    "iat": ..., 
    "nbf": ..., 
    "exp": .., 
    "acr": "...", 
    "aio": "...", 
    "amr": [ 
    "pwd", 
    "mfa" 
    ], 
    "appid": "...", 
    "appidacr": "0", 
    "e_exp": ..., 
    "family_name": "...", 
    "given_name": "...", 
    "ipaddr": "...", 
    "name": "...", 
    "oid": "...", 
    "onprem_sid": "...", 
    "platf": "3", 
    "scp": "user_impersonation", 
    "sub": "...", 
    "tid": "...", 
    "unique_name": "...", 
    "upn": "...", 
    "ver": "1.0" 
} 

これは働くものです。最初のトークンは、カスタムリソースの認証に使用されます。

特定のリソースのトークンを取得するには、パラメータresourceを使用して、トークンを要求するリソースを指定します。たとえば、私はMicrosoftグラフリソースのためのトークンを取得したい場合は、私たちは以下のような要求を構築することができます。

POST /{tenant}/oauth2/token HTTP/1.1 
Host: https://login.microsoftonline.com 
Content-Type: application/x-www-form-urlencoded 
grant_type=authorization_code 
&client_id=2d4d11a2-f814-46a7-890a-274a72a7309e 
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrqqf_ZT_p5uEAEJJ_nZ3UmphWygRNy2C3jJ239gV_DBnZ2syeg95Ki-374WHUP-i3yIhv5i-7KU2CEoPXwURQp6IVYMw-DjAOzn7C3JCu5wpngXmbZKtJdWmiBzHpcO2aICJPu1KvJrDLDP20chJBXzVYJtkfjviLNNW7l7Y3ydcHDsBRKZc3GuMQanmcghXPyoDg41g8XbwPudVh7uCmUponBQpIhbuffFP_tbV8SNzsPoFz9CLpBCZagJVXeqWoYMPe2dSsPiLO9Alf_YIe5zpi-zY4C3aLw5g9at35eZTfNd0gBRpR5ojkMIcZZ6IgAA 
&redirect_uri=https%3A%2F%2Flocalhost%2Fmyapp%2F 
&resource=https%3A%2F%2Fservice.contoso.com%2F 
&[email protected] 

あなたがhttps://srmukdev.sharepoint.com/のアクセストークンを取得したい場合は、resourceの値を割り当てる必要があります使用しているフローに応じて、要求にhttps://srmukdev.sharepoint.com/のパラメータを追加します。

アクセストークンを取得するためのフローのAzure ADのサポートについて

より詳細には、以下のリンクを参照できます。

Azure Active Directory Authentication Protocols

+0

こんにちは飛雪、それが問題だったはい、リソース名を変更するために必要なものをして。ベアラトークンを使用してアクセスできるようになりました。GetUserProfilePropertiesForメソッドを使用してユーザーのユーザープロファイルプロパティを取得できるようには見えませんが、別の質問としてそれを発生させます。どうもありがとう – Andrew

関連する問題