OAPuthでADFS認証を使用して、WebアプリケーションとWebAPIの間で通信しようとしています。私はADFS4を使用しており、それに応じてサーバーアプリケーションとWebapiでアプリケーショングループを構成しました。私はuserdetails、特にwebapiコントローラからユーザ名を受け取ろうとしています。 webapiに渡されるアクセストークン内のユーザ名の詳細を渡すことは可能ですか?ここで私はのWebapp側からやったことです:WEBAPI端から、ADFS認証後にWebアプリケーションのコントローラでADAP4-OAuth2のWebAPIからユーザー名を取得できません。OpenID
authContext = new AuthenticationContext(Startup.authority, false);
ClientCredential credential = new ClientCredential(Startup.clientId, Startup.appKey);
string accessToken = null;
bool isAuthenticated = User.Identity.IsAuthenticated; //return true
string username = User.Identity.Name; // returns username
string userId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Name).Value; // returns username
HttpClient httpClient = new HttpClient();
try
{
result = authContext.AcquireTokenAsync(Startup.apiResourceId, credential).Result;
accessToken = result.AccessToken;
}
catch (AdalException ex)
{
}
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
HttpResponseMessage response = httpClient.GetAsync(Startup.apiResourceId + "/api/ConfApi").Result;
、Startup.Auth.csに、私はこれらのコード
public void ConfigureAuth(IAppBuilder app)
{
JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();
app.UseActiveDirectoryFederationServicesBearerAuthentication(
new ActiveDirectoryFederationServicesBearerAuthenticationOptions
{
MetadataEndpoint = ConfigurationManager.AppSettings["ida:AdfsMetadataEndpoint"],
TokenValidationParameters = new TokenValidationParameters() {
SaveSigninToken = true,
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
}
});
}
を追加しました
しかし、ConfApiコントローラでは、ユーザーの詳細を含むクレームが見つかりません。
Webapiコントローラでユーザーの詳細を受け取るにはどうすればよいですか?
ありがとうございました。
[MSIS9649:無効なOAuth要求を受信しました。 'assertion'パラメータの値が有効なアクセストークンではありません](https:// stackoverflow。com/questions/43867426/msis9649-received-invalid-oauth-request-the-assertion-parameter-value-is-not) –