从 Otka 配置联合身份验证
本指南介绍如何使用 Okta 作为 IdP 配置联合身份验证。
集成 Okta 和 Atlas 后, 您可以使用公司档案登录 Atlas 和其他 MongoDB 云服务。
注意
如果您使用的是 Okta 的内置 MongoDB Cloud 应用程序,则可以使用 Okta 的文档。
如果要创建自己的 SAML 应用,请按照此处所述的步骤操作。
必需的访问权限
如需管理联合身份验证,必须拥有一个或多个将联合设置委托给实例的组织的Organization Owner
访问权限。
先决条件
如需将 Okta 用作 Atlas 的 IdP,必须具备:
一个 Okta 帐户。
自定义的可路由域名。
步骤
在如下过程中,为您的 Atlas 联合管理控制台和 Okta 帐户分别打开一个浏览器标签页会很有帮助。
将 Okta 配置为身份提供商
下载 Okta 源证书。
在 Okta 帐户中,单击右上角的 Admin以访问管理员环境。
在左侧窗格中,导航到 Applications(应用程序)-> Applications (应用程序)。
单击 Create App Integration。为 Sign-in method 选择 SAML 2.0,然后点击 Next。
在 App name(应用名称)文本字段中填写所需的应用程序名称。
可选:添加徽标图片并设置应用可见性。单击 Next(下一步)。
在 Configure SAML(配置 SAML)屏幕上输入以下信息:
字段值Single sign-on URL
http://localhost
Audience URI
urn:idp:default
重要
这些都是占位符值,不用于生产环境。您将在后面的步骤中予以更换。
将其他字段留空或者设置为它们的默认值,然后单击页面底部的 Next(下一步)。
在 Feedback 界面选择 I'm an Okta customer adding an internal app,然后单击 Finish。
在页面底部的 SAML Signing Certificates(SAML 签名证书)标题下方,找到 Status(状态)为
Active
(活动)的最新证书,也就是您刚刚创建的证书。单击 Actions(操作),然后从下拉菜单中选择 Download certificate(下载证书)。生成的证书是一个
.cert
文件。您必须将其转换为.pem
证书,才能稍后在此过程中使用。要执行此操作,请打开您选择的终端并运行以下命令:openssl x509 -in path/to/mycert.crt -out path/to/mycert.pem -outform PEM
打开 Federation Management Console(联合管理控制台)。
在 Atlas 中,前往 Organization Settings 页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
在 Federated Authentication Settings 中,单击 Open Federation Management App。
向 Atlas 提供 Okta 证书。
单击左侧窗格中的 Identity Providers。如果您以前已配置 IdP,请单击页面右上角的 Add Identity Provider,然后单击 Setup Identity Provider。如果您以前未配置 IdP,请单击 Setup Identity Provider。
在 Configure Identity Provider(配置 SAML)屏幕上输入以下信息:
字段值Configuration Name
用于标识配置的描述性标签
Issuer URI
Fill with Placeholder Values
Single Sign-On URL
Fill with Placeholder Values
Identity Provider Signature Certificate
您在上一步从 Okta 收到的证书
Request Binding
HTTP POST
Response Signature Algorithm
SHA-256
单击 Next(下一步)按钮,以查看 Okta 配置的值。
单击 Finish(连接)。
配置 SAML 集成。
在 Okta 帐户中,返回到 SAML 应用程序页面,并确保选择 General(常规)标签页。
在 SAML Settings(SAML 设置)窗格中,单击 Edit(编辑)。
在 General Settings 页面上,单击 Next。
在 Configure SAML(配置 SAML)屏幕上输入以下信息:
Okta 数据字段值Single sign on URL
Assertion Consumer Service URL 来自 Atlas FMC。
复选框:
Check Use this for Recipient URL and Destination URL.
清除 Allow this app to request other SSO URLs(允许此应用请求其他 SSO URL)。
Audience URI (SP Entity ID)
Audience URI 来自 Atlas FMC。
Default RelayState
(可选)将一个 RelayState URL 添加到您的 IdP 以将用户转到所选的 URL,并在登录后避免不必要的重定向。您可以使用:
目的地RelayState URLMongoDB Atlas
Login URL 在 Atlas Federation Management 应用程序中为身份提供程序配置生成的。
MongoDB 支持门户
https://auth.mongodb.com/app/salesforce/exk1rw00vux0h1iFz297/sso/saml MongoDB University
https://auth.mongodb.com/home/mongodb_thoughtindustriesstaging_1/0oadne22vtcdV5riC297/alndnea8d6SkOGXbS297 MongoDB 社区论坛
https://auth.mongodb.com/home/mongodbexternal_communityforums_3/0oa3bqf5mlIQvkbmF297/aln3bqgadajdHoymn297 MongoDB 反馈引擎
https://auth.mongodb.com/home/mongodbexternal_uservoice_1/0oa27cs0zouYPwgj0297/aln27cvudlhBT7grX297 MongoDB JIRA
https://auth.mongodb.com/app/mongodbexternal_mongodbjira_1/exk1s832qkFO3Rqox297/sso/saml Name ID format
未指定
Application username
电子邮件
Update application username on
创建和更新
单击 Okta 配置页面中的 Click Show Advanced Settings(单击显示高级设置)链接,确保设置了以下值:
Okta 数据字段值Response
Signed
Assertion Signature
Signed
Signature Algorithm
RSA-SHA256
Digest Algorithm
SHA256
Assertion Encryption
Unencrypted
将剩余的 Advanced Settings(高级设置)字段保留为它们的默认状态。
向下滚动到 Attribute Statements (optional)(属性语句)部分,并创建四个具有以下值的属性:
名称名称格式值名
未指定
user.firstName
姓
未指定
user.lastName
重要
Name(名称)列中的值区分大小写。严格按照所示输入。
注意
如果 Okta 连接到 Active Directory,则这些值可能会有所不同。 对于适当的值,请使用包含用户的名字、 姓氏和完整电子邮件地址的 Active Directory 字段。
(可选)如果计划使用角色映射,请向下滚动到 Group Attribute Statements (optional) 部分,然后创建具有以下值的属性:
名称名称格式Filter值memberOf
未指定
匹配正则表达式
.*
此过滤器会匹配与用户关联的所有群组名。要进一步过滤发送到 Atlas 的群组名,请调整 Filter(过滤器)和 Value(值)字段。
单击页面底部的 Next(下一步)。
在 Feedback 屏幕上,单击 Finish。
替换 Atlas FMC 中的占位符值。
在 Okta 应用程序页面上,单击页面中间的 View Setup Instructions(查看设置说明)。
在 Atlas FMC 中,导航到 Identity Providers(身份提供程序)页面。找到您的 Okta 并单击 Edit(编辑)。
替换以下字段中的占位符值:
FMC 数据字段值Issuer URI
Identity Provider Issuer 值来自 Okta 设置说明页面。
Single Sign-on URL
Identity Provider Single Sign-On URL 值来自 Okta 设置说明页面。
Identity Provider Signature Certificate
从 Okta 设置说明页面复制 X.509 Certificate(X.509 正数)并直接粘贴内容。
单击 Next(连接)。
单击 Finish(连接)。
将用户分配到 Okta 应用程序。
在 Okta 应用程序页面上,单击 Assignments(分配)标签页。
确保所有将使用 Okta 的 Atlas 组织用户 均已注册。
映射您的域
将域映射到 IdP 可以让 Atlas 知道域中用户应该应被定向到用于身份提供者配置的 Login URL。
访问 Atlas 登录页面时,用户需要输入自己的电子邮件地址。 如果电子邮件域与 IdP 关联,则被发送到该 IdP 的登录 URL。
重要
您可以将单个域映射到多个身份提供程序。如果这样做,使用 MongoDB Cloud 控制台登录的用户将自动重定向到第一个映射到该域的匹配 IdP。
要使用备用身份提供程序登录,用户必须:
通过所需的 IdP 启动 MongoDB Cloud 登录,或
使用与所需 IdP 关联的 Login URL 登录。
使用 Federation Management Console 将您的域映射到 IdP:
打开 FMC。
在 Atlas 中,前往 Organization Settings 页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
在 Manage Federation Settings 中,单击 Open Federation Management App。
输入域 映射信息。
单击 Add a Domain(连接)。
在 Domains 屏幕上,单击 Add Domain。
为域映射输入以下信息:
字段说明显示名称
用于轻松识别域的标签。
域名
要映射的域名。
单击 Next(连接)。
选择域验证方法。
注意
您可以选择一次验证方法。不能修改。 如需选择不同的验证方法,请删除域映射,然后重新创建。
根据您是通过上传 HTML 文件还是创建 DNS TXT 记录来验证域,选择相应的标签页:
上传包含验证密钥的 HTML 文件,验证您是否拥有自己的域。
单击 HTML File Upload(连接)。
单击 Next(连接)。
下载 Atlas 提供的
mongodb-site-verification.html
文件。将HTML文件上传到域中的站点。 您必须能够访问权限位于
<https://host.domain>/mongodb-site-verification.html
的文件。单击 Finish(连接)。
在您的域提供商系统中创建 DNS TXT 记录,以验证您是否拥有自己的域。每个 DNS 记录都会将特定的 Atlas 组织与特定的域关联起来。
单击 DNS Record(连接)。
单击 Next(连接)。
复制所提供的 TXT 记录。TXT 记录具有以下格式:
mongodb-site-verification=<32-character string> 登录您的域名提供商(例如 GoDaddy.com 或 networksolutions.com)。
将 Atlas 提供的 TXT 记录添加到域。
返回 Atlas 并单击 Finish(完成)。
验证域。
Domains 屏幕显示您已映射到 IdP 的未验证域名和已验证域名。 要验证您的域,点击目标域的 Verify 按钮。Atlas 在屏幕顶部的横幅显示验证是否成功。
将域与身份提供商关联
成功验证域后,使用 Federation Management Console 将域与 Otka 关联:
单击左侧导航栏中的 Identity Providers。
对于要与域名关联的 IdP,请单击 Associated Domains(关联域名)旁边的 Edit(编辑)。
选择要与 IdP 关联的域。
单击 Confirm(连接)。
测试您的域映射
重要
开始测试前,复制并保存 IdP 的 Bypass SAML Mode URL。使用此 URL 可在您被 Atlas 组织锁定时绕过联合身份验证。
测试时,请将会话登录到 Federation Management Console,进一步防止锁定。
要了解有关 Bypass SAML Mode 的详情,请参阅旁路 SAML 模式。
使用 Federation Management Console(联合管理控制台)测试域与 Otka 之间的集成:
在专用浏览器窗口中,导航到 Atlas 登录页面。
输入用户名(通常是电子邮件地址)和已验证的域名。
例子
如果验证的域是 mongodb.com
,请使用 username@mongodb.com
形式的电子邮件地址。
单击 Next(下一步)。如果域映射正确,则您会被重定向到 IdP 进行身份验证。身份验证成功后,您将被重定向回 Atlas。
注意
您可以直接导航到 IdP Login URL(登录 URL),绕过 Atlas 登录页面。
(可选)映射组织
使用 Federation Management Console 为域用户分配对特定 Atlas 组织的访问权限:
在 Atlas 中,转到 Organization Settings(项目设置)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
将一个组织连接到联合应用程序。
单击 View Organizations(连接)。
Atlas 显示您属于
Organization Owner
(组织所有者)的所有组织。尚未连接到联合应用程序的组织在 Actions(操作)列中具有 Connect(连接)按钮。
单击所需组织的 Connect(连接)按钮。
将一个身份提供程序应用于组织。
从管理控制台的 Organizations 屏幕:
单击要映射到一个 IdP 的组织的 Name(名称)。
在 Identity Provider 屏幕上,单击 Apply Identity Provider。
Atlas 会将您引导至 Identity Providers(身份提供程序)页面,显示您已链接 Atlas 的所有 IdP。
对于要应用到组织的 IdP,请单击 Add Organizations。
在 Apply Identity Provider to Organizations(将身份提供商应用于组织)模式中,选择此 IdP 适用的组织。
单击 Confirm(连接)。
(可选)配置高级联合身份验证选项
您可以为联合身份验证配置以下高级选项, 以便更好地控制联邦用户和身份验证流程:
注意
以下联合身份验证高级选项要求您映射一个组织。
使用登录 URL 登录 Atlas
您分配给 Okta 应用程序的所有用户都可以在 Login URL(登录 URL)上使用各自的 Okta 凭证登录 Atlas。用户可以访问您映射到IdP 的组织。
重要
您可以将单个域映射到多个身份提供程序。如果这样做,使用 MongoDB Cloud 控制台登录的用户将自动重定向到第一个映射到该域的匹配 IdP。
要使用备用身份提供程序登录,用户必须:
通过所需的 IdP 启动 MongoDB Cloud 登录,或
使用与所需 IdP 关联的 Login URL 登录。
如果您选择了默认组织角色,则使用 Login URL(登录 URL)登录 Atlas 的新用户将拥有您指定的角色。