モバイルクライアントから送信されたベアラトークンを検証するために、.Net Core Web API(.Net Framework)をADFS 3.0(2012)を使用するように構成する必要があります。.net ADFS 2012でコアのApi認証
私はADFSサーバーからaccess_tokenを生成することができ、それをAuthorizationヘッダーに渡します。
私の問題はAPIにあります:ユーザーを検証して自動化するにはどうすれば設定できますか?
私は多くの場所で検索しましたが、それを行うための決定的な方法は見つかりませんでした。
IdentityServer4(それは私が別の方法を使用することはできませんJWTとADFSはOpenIDを しようとしましたUseOpenIdConnectAuthentication(IdentityServer4で見つかった例) にカスタムミドルウェア を提供していない使用しているため、失敗しました使用さ:私がこれまで試したどのような
、私はのOAuth2をサポートする必要がある
だから、私はそれをどのように行うか
ここに私の最新の試みです:?
var connectOptions = new OpenIdConnectOptions
{
AuthenticationScheme = "adfs",
SignInScheme = "idsrv.external", //IdentityServerConstants.ExternalCookieAuthenticationScheme,
SignOutScheme = "idsrv", //IdentityServerConstants.SignoutScheme,
AutomaticChallenge = false,
DisplayName = "ADFS",
Authority = $"https://{options.AdfsHostName}/adfs/oauth2",
ClientId = options.ClientID,
ResponseType = "id_token",
Scope = { "openid profile" },
CallbackPath = new PathString("/signin-adfs"),
SignedOutCallbackPath = new PathString("/signout-callback-adfs"),
RemoteSignOutPath = new PathString("/signout-adfs"),
ClaimsIssuer = $"https://{options.AdfsHostName}/adfs/services/trust",
//TokenValidationParameters = new TokenValidationParameters
//{
// ValidateIssuer = true,
// ValidIssuer = $"https://{options.AdfsHostName}/adfs/services/trust"
//},
};
app.UseOpenIdConnectAuthentication(connectOptions);
有効なトークンを使用して、すべてのコールで非常に迅速な401を取得します。実際、コンソールウィンドウで接続が表示されている間、セキュリティ検証に関するRoslynコンソールウィンドウに他のログは表示されません。
私は現在、ASP.Net Core 1.1.Xを使用していますが、私がプロジェクトの後半にあり、多くの急な変更が含まれているため、.Net Core 2.0への移行を避けることができます。
詳細についてはお気軽にお問い合わせください。良いアドバイスをいただければ幸いです。