Protocol practice · Federation & Identity Standards

SAML 2.0: sign-in started by the service provider

Objective: You run the company wiki at wiki.example, and Harbor’s employees sign in through Harbor’s identity provider. Sign Rui Okafor in, and refuse the assertion you shouldn’t trust.

About 12 minutes · simulated, no real servers
  1. 1Ask the IdP
  2. 2Receive the response
  3. 3Check assertion A
  4. 4Accept assertion B
  5. 5Start the session
Where SAML fits
Sign-inWho is this?
AccessWhat may this app do?
AccountsDoes the account exist?
Not sure? Which protocol?

SAML at work, every day

Each of these is single sign-on into a company app, through the browser.

  • Opening the expense tool from the company portalOne click, no second password.
  • Signing in to an HR system with company credentialsThe identity provider vouches; the app trusts its signature.
  • An established enterprise appMany offer SAML first, or only SAML.

Step 1 of 5

Send the user to the identity provider

Rui opens the wiki and has no session. Your application builds an authentication request and sends the browser to Harbor’s identity provider with it.

GET https://idp.harbor.example/sso?SAMLRequest=…&RelayState=/pages/onboarding
​
# SAMLRequest, before it’s compressed and encoded:
<samlp:AuthnRequest ID="______" Version="2.0"
IssueInstant="2026-10-08T14:01:58Z"
Destination="https://idp.harbor.example/sso"
AssertionConsumerServiceURL="______">
<saml:Issuer>______</saml:Issuer>
</samlp:AuthnRequest>

Fill in the three blanks, then send the user.

ID: how you’ll recognize the answer
AssertionConsumerServiceURL: where the answer comes back
Issuer: who’s asking
Pick an answer for each blank to continue.