コンテンツにスキップ

SSO 設定の新規作成



POST /api/v1/sso/saml_create

概要

SSO を有効化します。

Body リクエストパラメータ

パラメータ名 必須 説明
type string Y タイプ
例:
空の値を許可: False
選択可能な値: ['saml', 'oidc']
idpData string XML ドキュメントの内容 (saml タイプの場合は必須)
例:
空の値を許可: False
config json アクセス設定テーブル (oidc タイプの場合は必須。clientSecret はバックエンドに渡す前に base64 エンコードする必要があります)
例:
空の値を許可: False
emailDomains array Y メールドメイン
例: ['guance.com']
idpName string Y プロバイダー
例: デフォルトプロバイダー
最大長: 64
$matchRegExp: [a-zA-Z_一-龥-]*
role string Y ロール UUID。general、readOnly、およびカスタムロールをサポートします。
空の値を許可: False
空の文字列を許可: False
remark string 備考
空の値を許可: False
空の文字列を許可: True
tokenHoldTime integer 無操作状態のセッション保持時間 (秒単位、デフォルト 7 日間 = 604800 秒)
例: 604800
空の値を許可: False
$minValue: 60
$maxValue: 604800
tokenMaxValidDuration integer ログインセッションの最大保持時間 (秒単位、デフォルト 30 日間 = 2592000 秒)
例: 2592000
空の値を許可: False
$minValue: 60
$maxValue: 2592000
needNotify boolean SSO 設定変更のメール通知を送信するかどうか。デフォルトは true。false を指定するとメール通知のみ抑制され、設定変更や監査記録には影響しません。
例: True
空の値を許可: False

パラメータ補足説明

OIDC タイプの config 設定説明


type='oidc' の場合、config フィールドが有効になります。そのデータ構造は以下の通りです。
1. config フィールドの説明

パラメータ名 必須 デフォルト値 説明
modeType enum easy 設定ファイルの編集モード。選択可能な値は以下の通りです。
easy:シンプルな UI 編集モード。このモードでは、ユーザーは OIDC インタラクションプロトコルに必須の基本データのみを設定すればよく、その他のデータはデフォルト値が使用されます。
expert:エキスパート設定ファイルモード。ユーザーは OIDC 設定ファイルをアップロードする必要があります。このモードでは、OIDC プロトコル内の各種リクエスト情報をカスタマイズできます。
wellKnowURL string Y OIDC プロトコルの標準サービスディスカバリー URL。
例: Microsoft AAD
clientId string Y 「認証サービス」が「Guance」用に作成したクライアント ID
clientSecret string Y 「認証サービス」が「Guance」用に作成したクライアントに対応するシークレット
sslVerify boolean サービスディスカバリー設定情報のリクエスト時に SSL 認証を強制するかどうか。
デフォルトでは、wellKnowURL パラメータ値のプロトコルアドレスに基づいて決定されます。https の場合はデフォルトで true、それ以外の場合はデフォルトで false になります。
grantType string Y authorization_code 「認証サービス」が「Guance」用に作成したクライアント ID
scope array Y ["openid", "email"] アクセス可能なデータ権限。
必須値: openid
その他の選択可能な値: 例: profile, email
この値は、「認証サービス」が「Guance」に割り当てた scope に依存します。
authSet dict この設定は、OIDC プロトコルにおける認証リクエスト URL の取得に使用されます。
プロトコルソース
getTokenSet dict この設定は、OIDC プロトコルにおける code を token と交換するリクエストに使用されます。
プロトコルソース
verifyTokenSet dict id_token の検証設定。
プロトコルソース, jwks_urls データ構造プロトコルソース
getUserInfoSet dict この設定は、OIDC プロトコルにおけるユーザー情報の取得リクエストに使用されます。
プロトコルソース
claimMapping dict ユーザー情報 / id_token 内のフィールドマッピング設定。「Guance」がこのマッピング設定に基づいてアカウント内の対応情報を取得するために使用されます。


2. config.authSet 設定の内部構造パラメータ説明

パラメータ名 必須 デフォルト値 説明
url string 認証リクエスト URL。
指定されていない場合、デフォルトで wellKnowURL が指す設定の authorization_endpoint 値が使用されます。
verify boolean このリクエストに対して SSL 検証を有効にするかどうか。指定されていない場合、URL が https プロトコルを使用するときはデフォルトで有効、それ以外の場合は無効になります。
paramMapping dict リクエスト内のパラメータフィールドのマッピング。通常、非標準の OIDC クライアントが独自の認証フローに合わせて関連パラメータフィールドを調整するために使用されます。詳細は以下の説明を参照してください。


3. config.getTokenSet 設定の内部構造パラメータ説明

パラメータ名 必須 デフォルト値 説明
url string code を token と交換するためのリクエスト URL。
指定されていない場合、デフォルトで wellKnowURL が指す設定の token_endpoint 値が使用されます。
method enum post リクエストメソッド。選択可能な値: post, get
verify boolean このリクエストに対して SSL 検証を有効にするかどうか。指定されていない場合、URL が https プロトコルを使用するときはデフォルトで有効、それ以外の場合は無効になります。
authMethod enum basic 署名データの位置と方法。選択可能な値は以下の通りです。
client_secret_basic または basic: 認証情報はリクエストヘッダーの Authorization にあり、basic 認証です。
client_secret_post: client_id と client_secret は body にあります。
none: client_id と client_secret は query にあります。
paramMapping dict リクエスト内のパラメータフィールドのマッピング。通常、非標準の OIDC クライアントが独自の認証フローに合わせて関連パラメータフィールドを調整するために使用されます。詳細は以下の説明を参照してください。


4. config.verifyTokenSet 設定の内部構造パラメータ説明

パラメータ名 必須 デフォルト値 説明
url string code を token と交換するためのリクエスト URL。
指定されていない場合、デフォルトで wellKnowURL が指す設定の token_endpoint 値が使用されます。
verify boolean このリクエストに対して SSL 検証を有効にするかどうか。指定されていない場合、URL が https プロトコルを使用するときはデフォルトで有効、それ以外の場合は無効になります。
keys array URL が指す JWT アルゴリズムデータ情報。
プロトコルソース, jwks_urls データ構造プロトコルソース


5. config.getUserInfoSet 設定の内部構造パラメータ説明

パラメータ名 必須 デフォルト値 説明
source enum id_token ユーザー情報の取得元。選択可能な値は以下の通りです。
id_token: id_token からデータを解析して取得します。
origin: 「認証サービス」のインターフェースを呼び出してユーザー情報を取得します。
url string ユーザー情報を取得するためのリクエスト URL。
指定されていない場合、デフォルトで wellKnowURL が指す設定の userinfo_endpoint 値が使用されます。
source=origin の場合にこのパラメータは有効です。
verify boolean このリクエストに対して SSL 検証を有効にするかどうか。指定されていない場合、URL が https プロトコルを使用するときはデフォルトで有効、それ以外の場合は無効になります。
method enum post リクエストメソッド。選択可能な値: post, get。
source=origin の場合にこのパラメータは有効です。
authMethod enum bearer 署名データの位置と方法。選択可能な値は以下の通りです。
bearer: HTTP Bearer 認証。
client_secret_basic または basic: 認証情報はリクエストヘッダーの Authorization にあり、basic 認証です。
client_secret_post: client_id と client_secret は body にあります。
none: client_id と client_secret は query にあります。
paramMapping dict リクエスト内のパラメータフィールドのマッピング。通常、非標準の OIDC クライアントが独自の認証フローに合わせて関連パラメータフィールドを調整するために使用されます。詳細は以下の説明を参照してください。


6. config.claimMapping 設定の内部構造パラメータ説明

パラメータ名 必須 デフォルト値 説明
email string Y email ユーザーのメールアドレスを表すフィールド。
username string Y preferred_username ユーザーのユーザー名を表すフィールド。
mobile string ユーザーの電話番号。


7. getTokenSet、getUserInfoSet 設定における paramMapping パラメータの内部構造説明 注意:paramMapping が存在する場合、カスタムリクエストパラメータフローが直接使用されます。

パラメータ名 必須 デフォルト値 説明
client_id string $client_id クライアント ID。プロトコルの client_id に対応します。
scope string $scope データ範囲。スペース区切りのデータ範囲文字列。
注意:ここでの scope はリクエストパラメータであり、外部設定のデータ型とは異なります。外部設定の scope はデフォルト設定として存在し、配列型です。
一方、ここでの scope はリクエストパラメータとして存在し、文字列型です。
例: “openid email profile”
code string $code 「認証サービス」から渡され、token と交換するための code。
state string $state CSRF と同様の役割を果たします。
redirect_uri string $redirect_uri レスポンスが送信されるリダイレクト URI。
response_type string $response_type レスポンスタイプ。認可コードフローの値は code です。

リクエスト例

curl 'https://openapi.guance.com/api/v1/sso/saml_create' \
  -H 'DF-API-KEY: <DF-API-KEY>' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  --data-raw '{"idpData":"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><md:EntityDescriptor entityID=\\\"http://www.okta.com/exk4snorvlVZsqus25d7\\\" xmlns:md=\\\"urn:oasis:names:tc:SAML:2.0:metadata\\\"><md:IDPSSODescriptor WantAuthnRequestsSigned=\\\"false\\\" protocolSupportEnumeration=\\\"urn:oasis:names:tc:SAML:2.0:protocol\\\"><md:KeyDescriptor use=\\\"signing\\\"><ds:KeyInfo xmlns:ds=\\\"http://www.w3.org/2000/09/xmldsig#\\\"><ds:X509Data><ds:X509Certificate>MIIDqDCCApCgAwIBAgIGAXy+xOGoMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0zODQzNjMzODEcMBoGCSqGSIb3DQEJ\nARYNaW5mb0Bva3RhLmNvbTAeFw0yMTEwMjYyMjQxMjZaFw0zMTEwMjYyMjQyMjZaMIGUMQswCQYD\nVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsG\nA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0zODQzNjMzODEc\nMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAKBt7aed/3A+gHtfmNSATeaaNo1LR/WPH9TIso3foT5dMXYRtlW57/YPNzBpii8+Gs/I6xL7\nkXzbRy9lnhpbBVTCLstWpuxYNr7zXuxICoSCW/b+5bYNkvKFmYd1dGkd0j7L8ZbHDKFzGkCS4a/D\nKUn6Ac/HlmML9GIOzPNyz514c6cAGd4zcpYiXFhlpzFLpElUOEedWVU4eZ48k91pPLf2guWpU/OD\nmKQisIOL5uqQqLsK1DXV+miSfB8Mm4jXSPLBE73mD7EfYidY1FQELqsrLshkXJGbhlkNnoEocCLH\nz9COzi9+jeecGvZGUw+l8hkxMsqH+0U3wM7ueVLMtgECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\nUQrFTpRmneWUuok3L1CWgTeuwakErxB2NZtvpGkD5HrJE/eeyCEp81atOH6EU6mJamSLuFtJu5wl\nArV9c7lfFliArtg3+d0NM9mV/6E+RYn5ELDK44Qc3M1wkf4BhcQWNVUR4tiTIS3EeFVEdo1e/xqg\n2sqj7WE+6BMMae4mjmXzrQ57+a+WzWKjKQfIuVzdy2ss+8ZnOpiU+sntd1DwXKCl1jMlDYQi9NYU\nHKIqtVkLsv0ooOoXygw7t9PD8iLHBEzAsoAyON15oUIEw4mahstkOA14yERzQQyII3gilZeANebf\npkg8N9/m3HBhfHh65KpQTHh9MTU41Bcvf2KZRg==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat><md:SingleSignOnService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\\\" Location=\\\"https://dev-38436338.okta.com/app/dev-38436338__5/exk4snorvlVZsqus25d7/sso/saml\\\"></md:SingleSignOnService><md:SingleSignOnService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\\\" Location=\\\"https://dev-38436338.okta.com/app/dev-38436338__5/exk4snorvlVZsqus25d7/sso/saml\\\"></md:SingleSignOnService></md:IDPSSODescriptor></md:EntityDescriptor>","emailDomains":["qq.com"],"role":"general","remark":"","tokenHoldTime":1800,"tokenMaxValidDuration":604800}' \
  --compressed \
  --insecure

レスポンス

{
    "code": 200,
    "content": {
        "assertionURL": "http://testing-ft2x-auth.cloudcare.cn/saml/assertion/sso_xxxx32",
        "createAt": 1678020614,
        "creator": "acnt_xxxx32",
        "deleteAt": -1,
        "emails": [
            "qq.com"
        ],
        "entiryID": "http://testing-ft2x-auth.cloudcare.cn/saml/metadata.xml",
        "id": null,
        "idpMd5": "54a3b7441fba3bdb555ae854745f576f",
        "idpName": null,
        "isOpenSAMLMapping": 0,
        "loginURL": "http://testing-ft2x-auth.cloudcare.cn/saml/login/sso_xxxx32",
        "metadataURL": "http://testing-ft2x-auth.cloudcare.cn/saml/metadata/sso_xxxx32",
        "remark": "",
        "role": "general",
        "status": 0,
        "tokenHoldTime": 1800,
        "tokenMaxValidDuration": 604800,
        "type": "saml-1",
        "updateAt": 1678020614,
        "updator": "acnt_xxxx32",
        "uploadData": "<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><md:EntityDescriptor entityID=\\\"http://www.okta.com/exk4snorvlVZsqus25d7\\\" xmlns:md=\\\"urn:oasis:names:tc:SAML:2.0:metadata\\\"><md:IDPSSODescriptor WantAuthnRequestsSigned=\\\"false\\\" protocolSupportEnumeration=\\\"urn:oasis:names:tc:SAML:2.0:protocol\\\"><md:KeyDescriptor use=\\\"signing\\\"><ds:KeyInfo xmlns:ds=\\\"http://www.w3.org/2000/09/xmldsig#\\\"><ds:X509Data><ds:X509Certificate>MIIDqDCCApCgAwIBAgIGAXy+xOGoMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0zODQzNjMzODEcMBoGCSqGSIb3DQEJ\nARYNaW5mb0Bva3RhLmNvbTAeFw0yMTEwMjYyMjQxMjZaFw0zMTEwMjYyMjQyMjZaMIGUMQswCQYD\nVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsG\nA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0zODQzNjMzODEc\nMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAKBt7aed/3A+gHtfmNSATeaaNo1LR/WPH9TIso3foT5dMXYRtlW57/YPNzBpii8+Gs/I6xL7\nkXzbRy9lnhpbBVTCLstWpuxYNr7zXuxICoSCW/b+5bYNkvKFmYd1dGkd0j7L8ZbHDKFzGkCS4a/D\nKUn6Ac/HlmML9GIOzPNyz514c6cAGd4zcpYiXFhlpzFLpElUOEedWVU4eZ48k91pPLf2guWpU/OD\nmKQisIOL5uqQqLsK1DXV+miSfB8Mm4jXSPLBE73mD7EfYidY1FQELqsrLshkXJGbhlkNnoEocCLH\nz9COzi9+jeecGvZGUw+l8hkxMsqH+0U3wM7ueVLMtgECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\nUQrFTpRmneWUuok3L1CWgTeuwakErxB2NZtvpGkD5HrJE/eeyCEp81atOH6EU6mJamSLuFtJu5wl\nArV9c7lfFliArtg3+d0NM9mV/6E+RYn5ELDK44Qc3M1wkf4BhcQWNVUR4tiTIS3EeFVEdo1e/xqg\n2sqj7WE+6BMMae4mjmXzrQ57+a+WzWKjKQfIuVzdy2ss+8ZnOpiU+sntd1DwXKCl1jMlDYQi9NYU\nHKIqtVkLsv0ooOoXygw7t9PD8iLHBEzAsoAyON15oUIEw4mahstkOA14yERzQQyII3gilZeANebf\npkg8N9/m3HBhfHh65KpQTHh9MTU41Bcvf2KZRg==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat><md:SingleSignOnService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\\\" Location=\\\"https://dev-38436338.okta.com/app/dev-38436338__5/exk4snorvlVZsqus25d7/sso/saml\\\"></md:SingleSignOnService><md:SingleSignOnService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\\\" Location=\\\"https://dev-38436338.okta.com/app/dev-38436338__5/exk4snorvlVZsqus25d7/sso/saml\\\"></md:SingleSignOnService></md:IDPSSODescriptor></md:EntityDescriptor>",
        "uuid": "sso_xxxx32",
        "workspaceUUID": "wksp_xxxx32"
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "12755949048553864357"
} 

フィードバック

このページは役に立ちましたか?