簡體   English   中英

實現自己的oauth2服務器和api服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM