CLS-2601 - Webex Identity, Provisioning, Authentication, and Authorization
CLS-2601 - Webex Identity, Provisioning, Authentication, and Authorization
© 2024
and/or
Cisco
itsand/or
affiliates.
its affiliates.
All rights reserved.
All rights reserved.
Cisco Confiden tial
Cisco Confidential
Webex Identity, Provisioning,
Authentication, and Authorization
Troubleshooting
Cisco Confidential
Introduction
Cisco Confidential
Safe Harbor
This presentation contains forward looking statements that involve risks, uncertainties and assumptions. If the risks
and uncertainties ever materialize or the assumptions prove incorrect, our results may differ materially from those
expressed or implied by such forward-looking statements. All statements other than statements of historical fact
could be deemed forward-looking, including, but not limited to, any projections of financial information; any
statements about historical results that may suggest trends for our business; any statements of the plans, strategies
and objectives of management for future operations; any statements of expectation or belief regarding future events,
underlying any of the foregoing.
These statements are based on estimates and information available to us at the time of this presentation and are not
guarantees of future performance. Actual results could differ materially form our current expectations as a result of
the many factors, including but not limited to: the unpredictable nature of our rapidly evolving market and quarterly
fluctuations in our business; the effects of competition; and ay adverse changes in our indirect channel relationships.
These and other risks and uncertainties associated with our business are described in the company’s annual report on
Form 10-K. The forward-looking statements in this presentation are made as of the date of the initial publication of
this presentation, and we disclaim any obligation to update these statements at any time in the future.
Cisco Confidential
Digital Identity and Access Management
Cisco Confidential
Provisioning
Cisco Confidential
Provisioning Methods
Manual Administrators can manually create individual user accounts in Control Hub
CSV Import Administrators can add user accounts in bulk by importing a CSV file into Control Hub
Self-registration Users can create their own account when a domain has been claimed in an organization
Social Sign-in Users can register and sign in to Webex using certain external accounts (Apple, Google, Facebook, Microsoft)
API Administrators can create, update, or delete user accounts via API (People or SCIM2)
Azure AD Wizard Utilizes a combination of SCIM 1.0 and the Graph API to synchronize users from Entra ID
Directory Connector Use the Directory Connector application to synchronize user accounts between an on-premises Active Directory server and Webex
SAML JIT Create and/or update user accounts after successful SSO login
DNS Verification
Cisco Confidential
Claim Domain
Cisco Confidential
Verified vs Claimed Domains
Existing Webex users can be claimed from other orgs. Existing Webex users can be claimed from other orgs.
https://help.webex.com/en-us/article/cd6d84/Manage-Your-Domains
Cisco Confidential
Provisioning – Manual and CSV
Cisco Confidential
Provisioning – Directory Connector
Cisco Confidential
System for Cross-domain Identity
Management (SCIM)
Cisco Confidential
SCIM 2.0 Bulk, Users, and Groups API
https://developer.webex.com/docs/scim-2-overview
Cisco Confidential
SCIM 2.0 Application – Okta Integration
Network
An application that utilizes the
SCIM 2.0 endpoints for
provisioning is now available in
the Okta Integration Network.
Cisco Confidential
Azure AD Wizard
Cisco Confidential
Azure AD Wizard – New Configuration (Defaults)
Cisco Confidential
Azure AD Wizard – Manual Configuration
Manual config (or editing existing
config) allows for granular control
over synchronization:
• Selected users
• Selected groups
• Attribute mappings
• Avatar sync
Cisco Confidential
Azure AD Wizard – Attribute Mapping
Entra ID Attribute
Webex User Attribute (target)
(source)
userPrincipalName userName
displayName displayName
surname name.familyName
givenName name.givenName
objectId externalId
jobTitle title
usageLocation addresses[type eq "work"].country
city addresses[type eq "work"].locality
streetAddress addresses[type eq "work"].streetAddress
state addresses[type eq "work"].region
postalCode addresses[type eq "work"].postalCode
telephoneNumber phoneNumbers[type eq "work"].value
mobile phoneNumbers[type eq "mobile"].value
facsimileTelephoneNumb
phoneNumbers[type eq "fax"].value
er
manager manager
Cisco Confidential
Azure AD Wizard - Users
Cisco Confidential
Azure AD Wizard – Groups
Sync group members
Webex will sync individual users in the group. Syncing users from a
group will not sync the group object. To sync group objects, go to
Options and enable the option Sync group objects
Cisco Confidential
Azure AD Wizard – More
Cisco Confidential
Azure AD Wizard – App Migration
Cisco Confidential
Additional Provisioning and
Identity Features
Cisco Confidential
Multi-factor Authentication
Cisco Confidential
User Attributes
Required User Attributes
Cisco Confidential
User Attributes
User Editable Attributes and Pronouns
Cisco Confidential
Alternative Emails
Allows users to authenticate with Webex using
a different email address than their primary.
Cisco Confidential
Administrator-Initiated Password Reset
Cisco Confidential
Hide selected users/devices from search
Admins can hide select users or shared devices (workspace) so
they cannot be searched by name.
Hiding a user also hides devices associated to that user.
When a workspace is hidden, all devices in that space will be
hidden.
Hidden users and devices will still be searchable by org admins
and other users who have hidden accounts.
Limitations:
• Users who know the complete email address for a hidden user can
still connect with that user.
• DX, MX, SX series devices will bypass this feature and return
hidden users/devices.
• Devices with proximity enabled can be detected.
Cisco Confidential
Manage Access and Token TTL
• Admins have granular control over which types of clients can
access Webex.
• Admins can control token specifics per client type:
• Auto update refresh token
• Refresh token validity period
• Max number of refresh tokens per user
• Amount of time an access token is valid
Cisco Confidential
Federated Organizations
Cisco Confidential
License and Settings Templates
https://help.webex.com/en-us/article/n3ijtao/Set-up-automatic-license-assignments-
in-Control-Hub
https://help.webex.com/en-us/article/n5uf91x/Configure-settings-templates
Cisco Confidential
Multiple Identity Providers (IdPs)
• Useful in complex deployments
under certain circumstances:
• Mergers and acquisitions
• Global enterprises with subsidiaries
utilizing different IT organizations
• Partners who use Webex as a
consumer service
• Institutions with organizations or
departments utilizing multiple IT
organizations
Cisco Confidential
Multiple IdPs – Routing Rules
• Users can be routed based on their
group or domain.
• Rules can contain multiple groups or
domains.
• Routing rules will be checked in order
when routing users.
• Rules should be ordered from most specific
to least specific.
• Domains must be verified or claimed in
order to be added to a routing rule.
• If a user does not match any rules, they
will be routed using the default rule.
Cisco Confidential
Multiple IdPs Example
Rule 1
• Group-based rule
• Group name – localauth
• Authentication – Webex
Rule 2
• Domain-based rule
• Domain – sckiewer.com
• Authentication – Azure AD (Entra ID)
Rule 3
• Default rule
• Authentication – Okta
Cisco Confidential
Multiple IdPs Example
Rule 1
• Group-based rule
• Group name – localauth
• Authentication – Webex
Rule 2
• Domain-based rule
• Domain – sckiewer.com
• Authentication – Azure AD (Entra ID)
Rule 3
• Default rule
• Authentication – Okta
Cisco Confidential
Multiple IdPs Example
Rule 1
• Group-based rule
• Group name – localauth
• Authentication – Webex
Rule 2
• Domain-based rule
• Domain – sckiewer.com
• Authentication – Azure AD (Entra ID)
Rule 3
• Default rule
• Authentication – Okta
Cisco Confidential
Multiple IdPs Example
Rule 1
• Group-based rule
• Group name – localauth
• Authentication – Webex
Rule 2
• Domain-based rule
• Domain – sckiewer.com
• Authentication – Azure AD (Entra ID)
Rule 3
• Default rule
• Authentication – Okta
Cisco Confidential
Multiple IdPs – Security Implications
• This feature is targeted for solving issues in very
complex scenarios.
• Some common customer scenarios can be solved with
the simpler External Users feature.
• Federation is generally supported by most IdPs and is
recommended over this feature.
• This feature exists because collaboration admins
sometimes don't have access to set up federation on
the IdP side (or their company policy forbids it).
• Audit events have been added for multiple IdP to
ensure any unauthorized changes are tracked.
• This feature differentiates Webex from other
collaboration platforms.
Cisco Confidential
Security Assertion Markup
Language (SAML) and OpenID
Connect (OIDC)
Cisco Confidential
Single Sign-On - SAML
Cisco Confidential
Webex Login Flow - SAML
Cisco Confidential
Webex Login Flow - SAML
<samlp:AuthnRequest
…
ID="s2ccffe5a3ebe2b7836ae8f
4655962854255204da7"
…
Destination="https://sso-
253ed3cb.sso.duosecurity.co
m/saml2/sp/DIJO4JTZZQX0K1VA
T0WP/sso"
…
AssertionConsumerServiceURL
="https://idbroker.webex.co
m/idb/Consumer/metaAlias/ef
70fae6-b079-45e6-901e-
0a1ba9856721/sp" >
…
</samlp:AuthnRequest>
© 2024 Cisco and/or its affiliates. All rights reserved.
Cisco Confidential
Webex Login Flow - SAML
Cisco Confidential
SAML Assertion Analysis
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_5d951be3-7d3e-4aab-8d39-f8d03659fa9b" IssueInstant="2024-05-21T20:17:31.762Z" Version="2.0">
<Issuer>https://sso-253ed3cb.sso.duosecurity.com/saml2/sp/DIJO4JTZZQX0K1VAT0WP/metadata</Issuer>
…
<Subject>
…
<SubjectConfirmationData InResponseTo="s2ccffe5a3ebe2b7836ae8f4655962854255204da7"
…
Recipient="https://idbroker.webex.com/idb/Consumer/metaAlias/ef70fae6-b079-45e6-901e-0a1ba9856721/sp"/>
</SubjectConfirmation>
</Subject>
<Conditions NotBefore="2024-05-21T20:17:31.746Z" NotOnOrAfter="2024-05-21T21:17:31.746Z">
…
</Conditions>
<AttributeStatement>
<Attribute Name="uid">
<AttributeValue>[email protected]</AttributeValue>
</Attribute>
</AttributeStatement>
<AuthnStatement AuthnInstant="2024-05-21T14:33:09.647Z" SessionIndex="_5d951be3-7d3e-4aab-8d39-f8d03659fa9b">
<AuthnContext>
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthnContextClassRef>
</AuthnContext>
</AuthnStatement>
</Assertion>
Cisco Confidential
SAML Just-in-Time (JIT) User
Create and Update
Users can be created using information provided by the
IdP during an SSO login.
Cisco Confidential
What is OpenID Connect (OIDC)?
Terminology:
OpenID Connect adds an authentication layer
• Authorization Server
to the robust OAuth 2.0 protocol.
• Response Type
Utilizes ID tokens (Base64-encoded JSON Web • Redirect URI
Tokens (JWT)) to encode claims. • Authorization Code
Provides multiple flows for different • Authorization Grant
applications and security requirements. • ID Token
• Access Token
Less complexity and administrative overhead
• Scope
when compared to SAML.
• Claim
Cisco Confidential
OpenID Connect
Client Secret
Entra ID
The client secret may require rotation depending on
your IdP.
• Entra ID requires rotation at least every two years.
• Okta does not require rotation
Okta
Cisco Confidential
OpenID Connect
Endpoints
Cisco Confidential
OpenID Connect
Well-known URI (Discovery URL)
{"token_endpoint":"https://login.microsoftonline.com/8a3c8e9d-c3d6-49d9-8ca8- token_endpoint - used by the client to exchange an authorization code for
0d91988b2bff/oauth2/v2.0/token","token_endpoint_auth_methods_supported":["client_secret_post","private_k access, refresh, and/or ID tokens.
ey_jwt","client_secret_basic"],"jwks_uri":"https://login.microsoftonline.com/8a3c8e9d-c3d6-49d9-8ca8-
0d91988b2bff/discovery/v2.0/keys","response_modes_supported":["query","fragment","form_post"],"subject_ty
jwks_uri - contains the signing key(s) the Relying Party (Webex) uses to
pes_supported":["pairwise"],"id_token_signing_alg_values_supported":["RS256"],"response_types_supported":[ validate signatures from the OpenID Provider (IdP).
"code","id_token","code id_token","id_token
response_types_supported - JSON array containing a list of the OAuth 2.0
token"],"scopes_supported":["openid","profile","email","offline_access"],"issuer":"https://login.microsoftonline.
response_type values that this OpenID Provider supports.
com/8a3c8e9d-c3d6-49d9-8ca8-
0d91988b2bff/v2.0","request_uri_parameter_supported":false,"userinfo_endpoint":"https://graph.microsoft.co scopes_supported - JSON array containing a list of the OAuth 2.0 scope
m/oidc/userinfo","authorization_endpoint":"https://login.microsoftonline.com/8a3c8e9d-c3d6-49d9-8ca8- values that this server supports.
0d91988b2bff/oauth2/v2.0/authorize","device_authorization_endpoint":"https://login.microsoftonline.com/8a3c
8e9d-c3d6-49d9-8ca8- issuer – HTTPS URL identifying the OpenID Provider that is issuing the
0d91988b2bff/oauth2/v2.0/devicecode","http_logout_supported":true,"frontchannel_logout_supported":true,"e token(s).
nd_session_endpoint":"https://login.microsoftonline.com/8a3c8e9d-c3d6-49d9-8ca8-
0d91988b2bff/oauth2/v2.0/logout","claims_supported":["sub","iss","cloud_instance_name","cloud_instance_ho userinfo_endpoint – returns claims about an authenticated end-user.
st_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_us
ername","name","tid","ver","at_hash","c_hash","email"],"kerberos_endpoint":"https://login.microsoftonline.com
authorization_endpoint – responsible for authenticating the end user.
/8a3c8e9d-c3d6-49d9-8ca8-
0d91988b2bff/kerberos","tenant_region_scope":"NA","cloud_instance_name":"microsoftonline.com","cloud_gra
ph_host_name":"graph.windows.net","msgraph_host":"graph.microsoft.com","rbac_url":"https://pas.windows.n claims_supported – JSON array containing a list of the claims for which the
et"} OpenID Provider MAY be able to supply information.
Cisco Confidential
OpenID Connect
Configuration
Cisco Confidential
OpenID Connect
Example ID Token Decoded
{
Token: "typ": "JWT",
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkV "alg": "RS256",
KVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG "kid": "1LTMzakihiRla_8z2BEJVXeWMqo"
9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3 }
YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4 {
MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjV "ver": "2.0",
hZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNj "iss": "https://login.microsoftonline.com/9122040d-6c67-4c5b-b112-
I3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJl 36a304b66dad/v2.0",
TGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02N "sub": "AAAAAAAAAAAAAAAAAAAAAIkzqFVrSaSaFHy782bbtaQ",
mYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2 "aud": "6cb04018-a3f5-46a7-b995-940c78f5aef3",
YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNX "exp": 1536361411,
TVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlq "iat": 1536274711,
ZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1 "nbf": 1536274711,
AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n- "name": "Abe Lincoln",
55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcp "preferred_username": "[email protected]",
L1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC- "oid": "00000000-0000-0000-66f3-3332eca7ea81",
T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9- "tid": "9122040d-6c67-4c5b-b112-36a304b66dad",
ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP- "nonce": "123523",
KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw "aio":
"Df2UVXL1ix!lMCWMSOJBcFatzcGfvFGhjKv8q5g0x732dR5MB5BisvGQO7YWByjd8iQDLq!eG
bIDakyp5mnOrcdqHeYSnltepQmRp6AIZ8jY"
}
Cisco Confidential
Webex Login Flow – OIDC
HTTP/1.1 302
location:
https://login.microsoftonline.com
/8a3c8e9d-c3d6-49d9-8ca8-
0d91988b2bff/oauth2/v2.0/auth
orize...
GET
client_id: aa6f8718-ad1d-42fc-
a2c8-a7df9a181a6f
response_type: code
scope: email openid address
phone Authorize Login
redirect_uri: https://idbroker-b- Endpoint Endpoint
us.webex.com/idb/Consumer/oid
c/sp
login_hint: [email protected]
Cisco Confidential
Webex Login Flow – OIDC
GET https://idbroker-b-
us.webex.com/idb/oauth2/v1/authorize?
response_type=code...
Referer:
https://login.microsoftonline.com/
HTTP/1.1 302
location:
https://web.webex.com?code=YWU0ZjA2 Authorize Login
NGY... Endpoint Endpoint
Cisco Confidential
Webex Login Flow – OIDC
{
…
"email": “[email protected]",
"email_verified": true,
"name": “Scott Kiewert",
"given_name": “Scott",
Token UserInfo "family_name" : “Kiewert",
Endpoint Endpoint "phone_number" : "+9191112222",
…
}
Cisco Confidential
Webex Login Flow – OIDC
{
…
"email": “[email protected]",
"email_verified": true,
"name": “Scott Kiewert",
"given_name": “Scott",
Token UserInfo "family_name" : “Kiewert",
Endpoint Endpoint "phone_number" : "+9191112222",
…
}
Cisco Confidential
OpenID Connect
Comparison with SAML
SAML OpenID Connect
XML-based JSON-based
Typically, worse for user privacy - user consent requires Better for user privacy (user consent is supported by
additional configuration. default)
Conveys user information in an assertion Conveys user information in claims
Application being accessed is called the Service Provider Application being accessed is called the Relying Party
Cisco Confidential
Troubleshooting
Cisco Confidential
Entra ID – Group Object Sync
Cisco Confidential
Azure AD Integration Error
Cisco Confidential
Azure AD Integration Error
https://login.microsoftonline.com/common/adminconsent
?client_id=90db942a-c1eb-4e8d-82e4-eebf64a7e2ae
Cisco Confidential
Inactive Users
User is deactivated in
30 days
directory source
Cisco Confidential
Inactive Users – Directory Connector
User is deactivated in
Indefinite
directory source
Cisco Confidential
Directory Connector Troubleshooting
Cisco Confidential
References and Feedback
Cisco Confidential
References
Provisioning
https://help.webex.com/en-us/article/nj34yk2/Ways-to-add-users-to-your-Control-Hub-organization
Domain Management
https://help.webex.com/en-us/article/cd6d84/Manage-Your-Domains
Directory Connector
https://help.webex.com/en-us/article/zqvufbb/Deployment-Guide-for-Directory-Connector
Azure AD Wizard
https://help.webex.com/en-us/article/heauzeb/Set-up-the-Entra-ID-(Azure-AD)-Wizard-App-in-Control-Hub
SCIM 2
https://developer.webex.com/docs/scim-2-overview
Single Sign-On
https://help.webex.com/en-us/article/ngp4sr8/SSO-with-multiple-IdPs-in-Webex
https://help.webex.com/en-us/article/lfu88u/Single-Sign-On-Integration-in-Control-Hub
https://help.webex.com/en-us/article/nsjpi6h/SAML-Auto-Account-Creation-and-Update-for-Control-Hub
OpenID Connect
https://openid.net/developers/how-connect-works/
© 2024 Cisco and/or its affiliates. All rights reserved.
Cisco Confidential
© 2024 Cisco and/or its affiliates. All rights reserved.
Cisco Confidential