Sustainsys.SAML2はhttp-postの代わりにhttp-redirectを使用します

ドミトリー・ダノフ

私はSAML認証の調査を始めたばかりで、認証の問題にぶつかったと言わなければなりません。残念ながら、開発マシンでは再現できず、さらに混乱します。

OWINを使用して次の構成があります。

var options = new Saml2AuthenticationOptions(false)
{
    Notifications = new Saml2Notifications
    {
        AuthenticationRequestCreated = (request, provider, dictionary) =>
        {
            request.Binding = Saml2BindingType.HttpPost;
        }
    },
    AuthenticationType = services.AuthenticationType,
    Caption = services.Caption,
    SPOptions = new SPOptions
    {
        EntityId = new EntityId(Path.Combine(services.RelyingPartyUri, "Saml2"))
    }
};

options.IdentityProviders.Add(new IdentityProvider(new EntityId(services.IdentityProviderConfiguration.IdentityProviderMetadataUri), options.SPOptions)
{
    AllowUnsolicitedAuthnResponse = true,
    Binding = Saml2BindingType.HttpPost,
    LoadMetadata = true,
    SingleSignOnServiceUrl = new Uri(services.IdentityProviderConfiguration.SingleSignOnUri)
});

app.UseSaml2Authentication(options);

services 変数には、メタデータuri、ssouriなどの構成が含まれます。

この構成は私のマシンで完全に機能します。ログインSAMLリクエストを調べましたが、次のようになっています。

<saml2p:AuthnRequest 
    xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" 
    xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" 
    ID="id10c4b76119b64952857d38c7581ca0b4" 
    Version="2.0" 
    IssueInstant="2018-12-04T14:29:00Z" 
    Destination="https://identity.provider/trust/saml2/http-post/sso/application" 
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
    AssertionConsumerServiceURL="https://application/Saml2/Acs">
    <saml2:Issuer>https://application/Saml2</saml2:Issuer>
</saml2p:AuthnRequest>

その後、認証は正常に機能します。

テスト目的でこのコードを外部サーバーにデプロイすると、期待どおりに機能する場合がありますが、http-postの代わりに認証メカニズムがhttp-redirectを使用するため、ユーザーを認証できないことがよくあります。

この場合、次のログインSAMLリクエストが表示されます。

<saml2p:AuthnRequest 
    xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" 
    xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" 
    ID="id10c4b76119b64952857d38c7581ca0b4" 
    Version="2.0" 
    IssueInstant="2018-12-04T14:29:00Z" 
    Destination="https://identity.provider/trust/saml2/http-redirect/sso/application" 
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
    AssertionConsumerServiceURL="https://application/Saml2/Acs">
    <saml2:Issuer>https://application/Saml2</saml2:Issuer>
</saml2p:AuthnRequest>

認証に使用されるSSOURIの違い。

これまでに行ったことは、構成の問題を排除するために構成ファイルをチェックすることです。すべての構成が有効でありservices.IdentityProviderConfiguration.SingleSignOnUri、http-postを使用した有効なSSOuriが含まれています。さまざまな設定を試してみましたが、コードスニペットに示されているように、BindingをHttpPostに設定しました。これSingleSignOnServiceUrlは、IDPメタデータから自動的に取得された場合に問題を解決できるはずです。また、sustainsys.SAML2のソースコードを調べましたが、手がかりとなるものは見つかりませんでした。

どんな助けでも大歓迎です!

アベルは違う

あなたが設定されている場合はLoadMetadata=true、メタデータで見つかった設定は、手動で設定を上書きします。明らかに、Idpのメタデータにはhttps://identity.provider/trust/saml2/http-redirect/sso/applicationPOSTバインディングを持つエンドポイント含まれています

これを修正するには、Idpにメタデータを正しく取得するように依頼します。またはLoadMetadata=false、コード内構成を設定して依存します。その場合は、コードにIdp署名証明書を追加する必要があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

httpsの代わりにhttp URLを生成するFlask url_for

分類Dev

fetch()はreact-native(iOS)でPOSTの代わりにGETを実行します

分類Dev

Angular $ httpはpostの代わりにgetを送信します

分類Dev

SustainsysおよびIdentityServer 4を使用したSaml2シングルログアウト(SingleLogoutServiceResponseUrl)

分類Dev

BokehはHTTPの代わりにHTTPSを提供します

分類Dev

IdentityServer4とSustainsys.Saml2を使用して、OAuthSAMLアサーションを作成します

分類Dev

FlurlPostUrlEncodedはPOSTの代わりにGETを実行します

分類Dev

Sustainsysを使用して公開鍵を含む.cerファイルを.NETCore2に追加する

分類Dev

ASP.NETCoreでSustainsys.Saml2を使用してSAML2認証プロバイダーを動的に追加します

分類Dev

SAML2-SustainSys- \ LogoutNameIdentifierと\ SessionIndexのルートURIを変更しますか?

分類Dev

Sustainsys.Saml2をバージョン0.23.0からバージョン2.0.0にアップグレードする方法

分類Dev

SustainsysとAzureを使用したSAMLシングルログアウトでメッセージが無効なエラーになります

分類Dev

ITfoxtec SAML2は複数のIdPをサポートできますか?

分類Dev

Sustainsys Saml2を使用してIdpが開始したログインからクレームを取得する方法は?

分類Dev

Sustainsys-Saml2とASP.netCoreを使用してSAML2IDPを動的にロードします

分類Dev

HerokuはPOSTメソッドの代わりにOptionsを使用します

分類Dev

Sustainsys.Saml2プロジェクトのサンプルを実行できません

分類Dev

Html.RenderActionはGetの代わりにPostを使用します

分類Dev

joomla BASEHREFはHTTPSの代わりにHTTPを使用します

分類Dev

AndroidHttpUrlConnectionはGETの代わりにPOSTを実行します

分類Dev

NopCommerceのURLでhttpsの代わりにhttpを使用する方法

分類Dev

httpの代わりにhttpsを使用するAppengine

分類Dev

WSO2がSAML2SSOAuthenticationServiceがfalseを返すのはなぜですか?(SAML2 SSO)

分類Dev

ApacheはHTTPの代わりにSFTPを使用してファイルを提供します

分類Dev

S3はPOSTの代わりにPUTを使用します

分類Dev

thycoticREST呼び出しはjsonの代わりにhttpを返します

分類Dev

Team Foundation Serverはhttpの代わりにhttpsを使用できますか?

分類Dev

PHPはPOSTの代わりにGETを送信します

分類Dev

HTTP画像出力は、画像の代わりにBLOBデータを提供します

Related 関連記事

  1. 1

    httpsの代わりにhttp URLを生成するFlask url_for

  2. 2

    fetch()はreact-native(iOS)でPOSTの代わりにGETを実行します

  3. 3

    Angular $ httpはpostの代わりにgetを送信します

  4. 4

    SustainsysおよびIdentityServer 4を使用したSaml2シングルログアウト(SingleLogoutServiceResponseUrl)

  5. 5

    BokehはHTTPの代わりにHTTPSを提供します

  6. 6

    IdentityServer4とSustainsys.Saml2を使用して、OAuthSAMLアサーションを作成します

  7. 7

    FlurlPostUrlEncodedはPOSTの代わりにGETを実行します

  8. 8

    Sustainsysを使用して公開鍵を含む.cerファイルを.NETCore2に追加する

  9. 9

    ASP.NETCoreでSustainsys.Saml2を使用してSAML2認証プロバイダーを動的に追加します

  10. 10

    SAML2-SustainSys- \ LogoutNameIdentifierと\ SessionIndexのルートURIを変更しますか?

  11. 11

    Sustainsys.Saml2をバージョン0.23.0からバージョン2.0.0にアップグレードする方法

  12. 12

    SustainsysとAzureを使用したSAMLシングルログアウトでメッセージが無効なエラーになります

  13. 13

    ITfoxtec SAML2は複数のIdPをサポートできますか?

  14. 14

    Sustainsys Saml2を使用してIdpが開始したログインからクレームを取得する方法は?

  15. 15

    Sustainsys-Saml2とASP.netCoreを使用してSAML2IDPを動的にロードします

  16. 16

    HerokuはPOSTメソッドの代わりにOptionsを使用します

  17. 17

    Sustainsys.Saml2プロジェクトのサンプルを実行できません

  18. 18

    Html.RenderActionはGetの代わりにPostを使用します

  19. 19

    joomla BASEHREFはHTTPSの代わりにHTTPを使用します

  20. 20

    AndroidHttpUrlConnectionはGETの代わりにPOSTを実行します

  21. 21

    NopCommerceのURLでhttpsの代わりにhttpを使用する方法

  22. 22

    httpの代わりにhttpsを使用するAppengine

  23. 23

    WSO2がSAML2SSOAuthenticationServiceがfalseを返すのはなぜですか?(SAML2 SSO)

  24. 24

    ApacheはHTTPの代わりにSFTPを使用してファイルを提供します

  25. 25

    S3はPOSTの代わりにPUTを使用します

  26. 26

    thycoticREST呼び出しはjsonの代わりにhttpを返します

  27. 27

    Team Foundation Serverはhttpの代わりにhttpsを使用できますか?

  28. 28

    PHPはPOSTの代わりにGETを送信します

  29. 29

    HTTP画像出力は、画像の代わりにBLOBデータを提供します

ホットタグ

アーカイブ