// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
};
const options = {
authorization: {
session_token: '${sessionToken}',
},
};
client.SSO.SAML.UpdateByURL(params, options)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/b2bstytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/sso/saml"
"github.com/stytchauth/stytch-go/v18/stytch/methodoptions"
)
func main() {
client, err := b2bstytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &saml.UpdateByURLParams{
OrganizationID: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
ConnectionID: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
MetadataURL: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
}
options := &saml.UpdateByURLParamsOptions{
Authorization: methodoptions.Authorization{
SessionToken: "${sessionToken}",
},
}
resp, err := client.SSO.SAML.UpdateByURL(context.Background(), params, options)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package com.example;
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequest;
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequestOptions;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.methodoptions.Authorization;
import com.stytch.java.common.StytchResult;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
UpdateByURLRequest params = new UpdateByURLRequest();
params.setOrganizationId("organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931");
params.setConnectionId("saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9");
params.setMetadataURL("https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata");
UpdateByURLRequestOptions options = new UpdateByURLRequestOptions();
Authorization authorization = new Authorization();
authorization.setSessionToken("${sessionToken}");
options.setAuthorization(authorization);
Object result = StytchB2BClient.getSSO().getSAML().updateByURL(params, options);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequest
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequestOptions
import com.stytch.java.common.methodoptions.Authorization
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.sso.saml.updateByURL(
UpdateByURLRequest(
organizationId = "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connectionId = "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadataURL = "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
),
UpdateByURLRequestOptions(
Authorization(
sessionToken = "${sessionToken}",
),
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
};
const options = {
authorization: {
session_token: '${sessionToken}',
},
};
client.sso.saml.updateByURL(params, options)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->sso->saml->update_by_url([
'organization_id' => 'organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931',
'connection_id' => 'saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9',
'metadata_url' => 'https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata',
], [
'authorization' => ['session_token' => '${sessionToken}'],
]);# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
from stytch import B2BClient
from stytch.b2b.models.sso_saml import UpdateByURLRequestOptions
from stytch.shared.method_options import Authorization
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.sso.saml.update_by_url(
organization_id="organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id="saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url="https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
method_options=UpdateByURLRequestOptions(
authorization=Authorization(
session_token="${sessionToken}",
),
),
)
print(resp)# frozen_string_literal: true
# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.sso.saml.update_by_url(
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
method_options: StytchB2B::SSO::SAML::UpdateByURLRequestOptions.new(
authorization: Stytch::MethodOptions::Authorization.new(session_token: '${sessionToken}')
)
)
puts resp// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
use stytch::b2b::client::Client;
use stytch::b2b::sso_saml::UpdateByURLRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.sso.saml.update_by_url(
UpdateByURLRequest{
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
curl --request PUT \
--url https://test.stytch.com/v1/b2b/sso/saml/organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931/connections/saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9/url \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-H "X-Stytch-Member-Session: ${sessionToken}" \
-d '{
"metadata_url": "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata"
}'{
"request_id": "<string>",
"status_code": 123,
"connection": {
"organization_id": "<string>",
"connection_id": "<string>",
"status": "<string>",
"idp_entity_id": "<string>",
"display_name": "<string>",
"idp_sso_url": "<string>",
"acs_url": "<string>",
"audience_uri": "<string>",
"signing_certificates": [
{
"certificate_id": "<string>",
"certificate": "<string>",
"issuer": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"updated_at": "<string>"
}
],
"verification_certificates": [
{
"certificate_id": "<string>",
"certificate": "<string>",
"issuer": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"updated_at": "<string>"
}
],
"encryption_private_keys": [
{
"private_key_id": "<string>",
"private_key": "<string>",
"created_at": "<string>"
}
],
"saml_connection_implicit_role_assignments": [
{
"role_id": "<string>"
}
],
"saml_group_implicit_role_assignments": [
{
"role_id": "<string>",
"group": "<string>"
}
],
"alternative_audience_uri": "<string>",
"identity_provider": "<string>",
"nameid_format": "<string>",
"alternative_acs_url": "<string>",
"idp_initiated_auth_disabled": true,
"allow_gateway_callback": true,
"attribute_mapping": {}
}
}{
"status_code": 401,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "unauthorized_credentials",
"error_message": "Unauthorized credentials.",
"error_url": "https://stytch.com/docs/api/errors/401"
}{
"status_code": 429,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "too_many_requests",
"error_message": "Too many requests have been made.",
"error_url": "https://stytch.com/docs/api/errors/429"
}{
"status_code": 500,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "internal_server_error",
"error_message": "Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong.",
"error_url": "https://stytch.com/docs/api/errors/500"
}Update SAML Connection by Metadata URL
Update an existing SAML Connection using an IdP metadata URL
// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
};
const options = {
authorization: {
session_token: '${sessionToken}',
},
};
client.SSO.SAML.UpdateByURL(params, options)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/b2bstytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/sso/saml"
"github.com/stytchauth/stytch-go/v18/stytch/methodoptions"
)
func main() {
client, err := b2bstytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &saml.UpdateByURLParams{
OrganizationID: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
ConnectionID: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
MetadataURL: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
}
options := &saml.UpdateByURLParamsOptions{
Authorization: methodoptions.Authorization{
SessionToken: "${sessionToken}",
},
}
resp, err := client.SSO.SAML.UpdateByURL(context.Background(), params, options)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package com.example;
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequest;
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequestOptions;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.methodoptions.Authorization;
import com.stytch.java.common.StytchResult;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
UpdateByURLRequest params = new UpdateByURLRequest();
params.setOrganizationId("organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931");
params.setConnectionId("saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9");
params.setMetadataURL("https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata");
UpdateByURLRequestOptions options = new UpdateByURLRequestOptions();
Authorization authorization = new Authorization();
authorization.setSessionToken("${sessionToken}");
options.setAuthorization(authorization);
Object result = StytchB2BClient.getSSO().getSAML().updateByURL(params, options);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequest
import com.stytch.java.b2b.models.ssosaml.UpdateByURLRequestOptions
import com.stytch.java.common.methodoptions.Authorization
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.sso.saml.updateByURL(
UpdateByURLRequest(
organizationId = "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connectionId = "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadataURL = "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
),
UpdateByURLRequestOptions(
Authorization(
sessionToken = "${sessionToken}",
),
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
};
const options = {
authorization: {
session_token: '${sessionToken}',
},
};
client.sso.saml.updateByURL(params, options)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->sso->saml->update_by_url([
'organization_id' => 'organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931',
'connection_id' => 'saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9',
'metadata_url' => 'https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata',
], [
'authorization' => ['session_token' => '${sessionToken}'],
]);# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
from stytch import B2BClient
from stytch.b2b.models.sso_saml import UpdateByURLRequestOptions
from stytch.shared.method_options import Authorization
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.sso.saml.update_by_url(
organization_id="organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id="saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url="https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
method_options=UpdateByURLRequestOptions(
authorization=Authorization(
session_token="${sessionToken}",
),
),
)
print(resp)# frozen_string_literal: true
# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.sso.saml.update_by_url(
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
method_options: StytchB2B::SSO::SAML::UpdateByURLRequestOptions.new(
authorization: Stytch::MethodOptions::Authorization.new(session_token: '${sessionToken}')
)
)
puts resp// PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
use stytch::b2b::client::Client;
use stytch::b2b::sso_saml::UpdateByURLRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.sso.saml.update_by_url(
UpdateByURLRequest{
organization_id: "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
connection_id: "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
metadata_url: "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata",
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# PUT /v1/b2b/sso/saml/{organization_id}/connections/{connection_id}/url
curl --request PUT \
--url https://test.stytch.com/v1/b2b/sso/saml/organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931/connections/saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9/url \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-H "X-Stytch-Member-Session: ${sessionToken}" \
-d '{
"metadata_url": "https://idp.example.com/app/51861cbc-d3b9-428b-9761-227f5fb12be9/sso/saml/metadata"
}'{
"request_id": "<string>",
"status_code": 123,
"connection": {
"organization_id": "<string>",
"connection_id": "<string>",
"status": "<string>",
"idp_entity_id": "<string>",
"display_name": "<string>",
"idp_sso_url": "<string>",
"acs_url": "<string>",
"audience_uri": "<string>",
"signing_certificates": [
{
"certificate_id": "<string>",
"certificate": "<string>",
"issuer": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"updated_at": "<string>"
}
],
"verification_certificates": [
{
"certificate_id": "<string>",
"certificate": "<string>",
"issuer": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"updated_at": "<string>"
}
],
"encryption_private_keys": [
{
"private_key_id": "<string>",
"private_key": "<string>",
"created_at": "<string>"
}
],
"saml_connection_implicit_role_assignments": [
{
"role_id": "<string>"
}
],
"saml_group_implicit_role_assignments": [
{
"role_id": "<string>",
"group": "<string>"
}
],
"alternative_audience_uri": "<string>",
"identity_provider": "<string>",
"nameid_format": "<string>",
"alternative_acs_url": "<string>",
"idp_initiated_auth_disabled": true,
"allow_gateway_callback": true,
"attribute_mapping": {}
}
}{
"status_code": 401,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "unauthorized_credentials",
"error_message": "Unauthorized credentials.",
"error_url": "https://stytch.com/docs/api/errors/401"
}{
"status_code": 429,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "too_many_requests",
"error_message": "Too many requests have been made.",
"error_url": "https://stytch.com/docs/api/errors/429"
}{
"status_code": 500,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "internal_server_error",
"error_message": "Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong.",
"error_url": "https://stytch.com/docs/api/errors/500"
}idp_sso_urlattribute_mapping(must be supplied via Update SAML Connection)idp_identity_idx509_certificates
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Headers
A Stytch session that can be used to run the request with the given member's permissions.
A Stytch Session JSON Web Token (JWT) that can be used to run the request with the given member's permissions.
Path Parameters
Globally unique UUID that identifies a specific Organization. The organization_id is critical to perform operations on an Organization, so be sure to preserve this value. You may also use the organization_slug or organization_external_id here as a convenience.
Globally unique UUID that identifies a specific SSO connection_id for a Member.
Body
Request type
A URL that points to the IdP metadata. This will be provided by the IdP.
Response
Successful response
Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue.
The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.
Show child attributes
Show child attributes