[英]implementing own oauth2 server and api server
我們正在嘗試實現oauth 2服務器和api服務器(兩者都是不同的服務器)。 (對所有人使用nodejs)
我們正在使用https://github.com/FrankHassanabad/Oauth2orizeRecipes授權碼流程
我們是否需要在oauth服務器中編寫新的validateToken函數,只需從api端點擊它即可對該用戶進行身份驗證。
我們正在考慮將用戶和角色保留在oauth方面,但我們需要在給api呼叫響應之前在api端檢查它們。
我們正在嘗試將其用於身份驗證以及cms和移動應用程序。 我們是正確的軌道還是遺漏了什么。
我查看了更多細節,我在Oauth2orizeRecipes中獲得了tokeninfo實現。
https://github.com/FrankHassanabad/Oauth2orizeRecipes/wiki/Token-Info-Endpoint
還有幾點我不清楚,會再次更新答案。
(我在.Net中遇到過類似的情況,所以在上下文中)
不,如果您使用的是oauth,則不必編寫新的驗證令牌方法。 由於OAuthBearerAuthenticationProvider在幕后執行此操作
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = context =>
{
context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue"));
return Task.FromResult<object>(null);
}
}
});
(根據我的經驗)。 但是如果您願意,可以選擇在“啟動”文件中配置Provider:
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new CustomOAuthBearerProvider()
});
“CustomOAuthBearerProvider”繼承了“IOAuthBearerAuthenticationProvider”接口,該接口具有RequestToken()方法的預定義簽名,並且在對令牌進行任何驗證之前調用此方法。 所以我認為您可以將它用於Token上的自定義驗證操作,然后發送令牌進行OAuth驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.