---
title: 域名登录策略
description: 对邮箱位于你所拥有的已验证域名下的用户，在平台范围内决定登录是允许、封禁，还是强制走你的身份提供方。
editUrl: true
head: []
template: doc
sidebar:
  order: 3
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

import { CardGrid, LinkCard } from "@astrojs/starlight/components";

组织持有[已验证域名](/zh-cn/domains-federation/adopt-a-domain/)后，就可以为它设置**登录策略**。该策略在**整个平台**生效，适用于每个拥有该域名已验证邮箱的账户，而不只影响组织自己的应用。由于组织已经证明对域名的 DNS 控制权，Sudomimus 允许它决定该邮箱命名空间的登录方式。

## 三种策略

| 策略 | 对在该域名下有邮箱的账户的影响 |
|---|---|
| **`ALLOW_ALL`** | 无限制。这是每个已验证域名的默认值（也是「未设置策略」的含义）。 |
| **`BLOCK_ALL`** | 平台范围内拒绝一切登录，不论用什么方法。 |
| **`SSO_ONLY`** | 一切登录都必须走某个指定的[外部连接](/zh-cn/domains-federation/federation-connectors/)——你的 IdP。其他任何方法（通行密钥、邮箱 OTP、消费级 OAuth、Steam、原生密钥）都被拒绝。 |

`SSO_ONLY` 在[使用你的 IdP 登录](/zh-cn/domains-federation/sign-in-with-your-idp/)中有完整讲解；本页其余部分聚焦于这三者各自的行为。

## 强制执行的机制

平台会在登录进入准入判定阶段时检查该策略。它位于应用身份准入规则之前，并具有以下重要特性：

:::note[策略作用于账户，而非本次输入的邮箱]
只要账户的**任意一个**已验证邮箱属于设置了 `BLOCK_ALL` 或 `SSO_ONLY` 的 `VERIFIED` 域名，**整个账户**就会受该策略管控。它适用于每次登录、每种认证方式和每个应用，与用户本次输入哪个邮箱无关；即使用户通过不含邮箱的通行密钥登录，也会执行相同策略。
:::

这与账户级停用的处理方式相似。系统先检查账户是否启用，再检查域名登录策略，最后执行第二层身份准入规则。因此，这是一项平台级策略，而不是某个应用的规则。

被该策略拒绝的登录，会以 wire reason `EmailDomainBlocked`（对应 `BLOCK_ALL`）或 `EmailDomainRequiresSso`（对应 `SSO_ONLY`）被拒。

## 策略做什么、不做什么

- **它管控认证，不管控授权。** 满足 `SSO_ONLY` 的登录仍需通过应用的[第二层身份准入规则](/zh-cn/application-rules/realize-rules/)和[第三层返回规则](/zh-cn/application-rules/return-rules/)。强制 SSO 不会授予访问权限，只会限制用户*如何*证明身份。
- **它不撤销已签发的令牌。** 与账户停用一样，该策略只在登录（realize）时检查。已经签发的访问令牌与刷新令牌会一直有效，直到按 TTL 过期（访问令牌 3 小时，刷新令牌 30 天）。设置 `BLOCK_ALL` 会立即把用户挡在*新*登录之外；但不会终止他们当前的会话。
- **它不触碰账户的邮箱所有权。** 改回 `ALLOW_ALL` 即可恢复正常访问——账户上没有任何东西被删除。

## 设置策略

登录策略在 With 门户的已验证域名详情页中设置。只有拥有该域名的组织的**唯一 Owner**可以修改策略。如果组织有多位 Owner，任何一人都不能单方面改变该域名下所有人的登录方式。

:::caution[你可能把自己锁在门外]
该策略对**每一个**应用生效，包括 With 门户本身，而且对你自己的登录**没有**任何豁免。如果你在自己*登录邮箱*所在的域名上设置了 `BLOCK_ALL`（或一个配置错误的 `SSO_ONLY`），你会把自己锁在 Sudomimus 之外，需要工作人员为你解除封禁。门户会在你这么做之前给出警告——请认真阅读它。
:::

## 相关

<CardGrid>
<LinkCard
    title="认领域名"
    description="登录策略需要一个已验证的域名——从这里开始。"
    href="/zh-cn/domains-federation/adopt-a-domain/"
/>
<LinkCard
    title="使用你的 IdP 登录"
    description="完整讲解 SSO_ONLY：强制某个域名的用户都走你的外部连接。"
    href="/zh-cn/domains-federation/sign-in-with-your-idp/"
/>
</CardGrid>