ASP.Net Core OpenIdConnect Steam

ルネサッカー

SteamOpenIdをASP.NetCoreアプリケーションに実装しようとしていますが、OpenIDを実装した経験がありません。
残念ながら、Steamにはドキュメントが大幅に不足しており、単に「OpenIDライブラリをダウンロードするだけ」と述べ、ドメイン名のAPIキーを登録するためのページを提供します。

完全なASP.Netで利用できる実装はいくつかありますが、Coreでは利用できません。また、いくつかの違いがあるようです。

Microsoft.AspNetCore.Authentication.OpenIdConnectを使用しようとしていますが、これが正しいライブラリであるかどうかは完全にはわかりません。「OpenID」と「OpenIDConnect」には違いがあるようです。

Startup.csで次のように認証を設定しました。

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
    DisplayName = "Steam",
    Authority = "http://steamcommunity.com/openid",
    ClientId = "MyClientId",
    ClientSecret = "ApiKeyHere",
    SignInScheme = "SignInCookie",
    CallbackPath = new PathString("/Account/SteamCallback"),
    RequireHttpsMetadata = false
});

しかし、サインインページにアクセスするとすぐに、チャレンジを返すアクションで構成されます。

public IActionResult SignIn()
{
    return Challenge();
}

エラーが発生します

JsonReaderException:値の解析中に予期しない文字が検出されました:<。パス ''、行0、位置
0。Newtonsoft.Json.JsonTextReader.ParseValue()InvalidOperationException:
IDX10803:構成を取得できません: ' http://steamcommunity.com/openid/.well-known/openid-configuration '。

このURLを見ると、OpenIDの構成のXMLデータが返されているようです。

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
    <XRD>
        <Service priority="0">
            <Type>http://specs.openid.net/auth/2.0/server</Type>        
            <URI>https://steamcommunity.com/openid/login</URI>
        </Service>
    </XRD>
</xrds:XRDS>

ただし、OpenID仕様では、この情報はJSONである必要があると規定されています

次にOpenIdConnectMiddlewareこのASP.Netの実装と同じように、自分登録しようとしましたが、OpenIdConnectMiddlewareクラスに必要なサービスが不足しているため、構築できませんでした

System.InvalidOperationException: 'タイプ' TestApplication.SteamOpenId.SteamAuthenticationMiddleware 'に適したコンストラクターが見つかりませんでした。タイプが具体的であり、サービスがパブリックコンストラクターのすべてのパラメーターに登録されていることを確認してください。

私の実装:

public class SteamAuthenticationMiddleware : OpenIdConnectMiddleware
{
    public SteamAuthenticationMiddleware(
        RequestDelegate next,
        IDataProtectionProvider dataProtectionProvider,
        ILoggerFactory loggerFactory,
        UrlEncoder encoder,
        IServiceProvider services,
        IOptions<SharedAuthenticationOptions> sharedOptions,
        IOptions<OpenIdConnectOptions> options,
        HtmlEncoder htmlEncoder) :
        base(
            next,
            dataProtectionProvider,
            loggerFactory,
            encoder,
            services,
            sharedOptions,
            options,
            htmlEncoder)
    {
    }

    protected override AuthenticationHandler<OpenIdConnectOptions> CreateHandler() => new SteamAuthenticationHandler();
}

私はこの質問があまり具体的ではないことを知っていますが、誰かがこれで私を正しい方向に向けることができますか?私は少し困惑しています。

ケビンシャレー

「OpenID」と「OpenIDConnect」には違いがあるようです。

OpenID1 / 2とOpenIDConnectはまったく異なるプロトコルです。

SteamはまだOpenID2.0を使用しているため、ASP.NETCoreのOpenIDConnectミドルウェアを使用して、Steamアカウントを使用してユーザーを認証することはできません。これは、2つのプロトコルに互換性/相互運用性がないためです。

私はこの質問があまり具体的ではないことを知っていますが、誰かがこれで私を正しい方向に向けることができますか?私は少し困惑しています。

あなたが言及したaspnet-contribSteamミドルウェアは、ASP.NETCore用に特別に開発された汎用OpenID2.0プロバイダーから派生しているため、おそらくあなたの最良の選択肢です(とはいえ、私はそれを書いた人なので、おそらくそうではありません目的)。

パッケージはNuGet.orgで見つけることができます:https://www.nuget.org/packages/AspNet.Security.OpenId.Steam/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ASP.NET Core2でSteam用のOpenIDConnectを構成するにはどうすればよいですか?

分類Dev

ASP.NET 5 using openidconnect

分類Dev

net.core / asp.net identity / openidconnectで相関が失敗しました

分類Dev

asp.net mvc core 2OpenIdConnectでAutomaticChallengeをオフにします

分類Dev

Where can I find the ASP.NET Core 2 source code? Specifically for Microsoft.AspNetCore.Authentication.OpenIdConnect

分類Dev

openidconnectを使用したASP.NET5

分類Dev

.NET CoreとASP.NET Core

分類Dev

.Net Core 2 OpenIDConnect認証と複数のID

分類Dev

Validating Tokens Issued by AspNet.Security.OpenIdConnect.Server (ASP.NET vNext)

分類Dev

ASP.NET Core2アプリケーションでidentityserver4のOpenIdConnect認証をサインアウトできません

分類Dev

ASP.Net Core 2.0:Windows認証が有効になっているIISサイトで実行されているOpenIdConnect認証を使用する

分類Dev

ASP.NET Core2のトークンまたはOpenIDConnectのいずれかを使用して認証します

分類Dev

ASP.NET Core ToHtmlString

分類Dev

Cookieless ASP.NET Core

分類Dev

ASP.NET5のOpenIdConnect.Serverでクレームを使用する

分類Dev

ASP.NET OWIN OpenIDConnectがユーザー認証を作成しない

分類Dev

ASP.Net Core SAML authentication

分類Dev

ASP.Net Core SAML authentication

分類Dev

ASP.Net Core SAML authentication

分類Dev

ASP.NET CORE 2.0のFromUri

分類Dev

ASP.NET Core 2.0 authentication middleware

分類Dev

ASP.NET CoreのPayPal

分類Dev

How to enable CORS in ASP.NET Core

分類Dev

ASP .Net Core Routingの問題?

分類Dev

Path to LocalAppData in ASP.Net Core application

分類Dev

ASP.NET Core 1.0SynchronizationContext

分類Dev

Using BeginCollectionItem in ASP.net Core

分類Dev

Recursion in ASP.NET Core Razor views

分類Dev

Windows Authentication with asp.net core

Related 関連記事

  1. 1

    ASP.NET Core2でSteam用のOpenIDConnectを構成するにはどうすればよいですか?

  2. 2

    ASP.NET 5 using openidconnect

  3. 3

    net.core / asp.net identity / openidconnectで相関が失敗しました

  4. 4

    asp.net mvc core 2OpenIdConnectでAutomaticChallengeをオフにします

  5. 5

    Where can I find the ASP.NET Core 2 source code? Specifically for Microsoft.AspNetCore.Authentication.OpenIdConnect

  6. 6

    openidconnectを使用したASP.NET5

  7. 7

    .NET CoreとASP.NET Core

  8. 8

    .Net Core 2 OpenIDConnect認証と複数のID

  9. 9

    Validating Tokens Issued by AspNet.Security.OpenIdConnect.Server (ASP.NET vNext)

  10. 10

    ASP.NET Core2アプリケーションでidentityserver4のOpenIdConnect認証をサインアウトできません

  11. 11

    ASP.Net Core 2.0:Windows認証が有効になっているIISサイトで実行されているOpenIdConnect認証を使用する

  12. 12

    ASP.NET Core2のトークンまたはOpenIDConnectのいずれかを使用して認証します

  13. 13

    ASP.NET Core ToHtmlString

  14. 14

    Cookieless ASP.NET Core

  15. 15

    ASP.NET5のOpenIdConnect.Serverでクレームを使用する

  16. 16

    ASP.NET OWIN OpenIDConnectがユーザー認証を作成しない

  17. 17

    ASP.Net Core SAML authentication

  18. 18

    ASP.Net Core SAML authentication

  19. 19

    ASP.Net Core SAML authentication

  20. 20

    ASP.NET CORE 2.0のFromUri

  21. 21

    ASP.NET Core 2.0 authentication middleware

  22. 22

    ASP.NET CoreのPayPal

  23. 23

    How to enable CORS in ASP.NET Core

  24. 24

    ASP .Net Core Routingの問題?

  25. 25

    Path to LocalAppData in ASP.Net Core application

  26. 26

    ASP.NET Core 1.0SynchronizationContext

  27. 27

    Using BeginCollectionItem in ASP.net Core

  28. 28

    Recursion in ASP.NET Core Razor views

  29. 29

    Windows Authentication with asp.net core

ホットタグ

アーカイブ