生活
adfs 、爱的发声练习
2023-04-12 00:45  浏览:28

如何配置Windows Server2008 ADFS麻烦告诉我

这项新功能甚至可以实现完全不同的两个网络或者是组织之间的帐户以及应用程序之间的通讯。 要理解ADFS的工作原理,可以先考虑活动目录的工ADFS是Windows Server 2008 操作系统中的一项新功能,它提供了一个统一的访问解决方案,用于解决基于浏览器的内外部用户的访问。这项新功能甚至可以实现完全不同的两个网络或者是组织之间的帐户以及应用程序之间的通讯。要理解ADFS的工作原理,可以先考虑活动目录的工作原理。当用户通过活动目录进行认证时,域控制器检查用户的证书。当证明是合法用户后,用户就可以随意访问Windows网络的任何授权资源,而无需在每次访问不同服务器时重新认证。ADFS将同样的概念应用到Internet。我们都知道当Web应用需要访问位于数据库或其他类型后端资源上的后端数据时,对后端资源的安全认证问题往往比较复杂。现在可以使用的有很多不同的认证方法提供这样的认证。例如,用户可能通过RADIUS(远程拨入用户服务认证)服务器或者通过应用程序代码的一部分实现所有权认证机制。这些认证机制都可实现认证功能,但是也有一些不足之处。不足之一是账户管理。当应用仅被企业自己的员工访问时,账户管理并不是个大问题。但是,如果企业的供应商、客户都使用该应用时,就会突然发现用户需要为其他企业的员工建立新的用户账户。不足之二是维护问题。当其他企业的员工离职,雇佣新员工时,用户还需要删除旧的账户和创建新的账户。ADFS能为您做什么?如果用户将账户管理的任务转移到他们的客户、供应商或者其他使用Web应用的人那里会是什么样子哪? 设想一下, Web应用为其他企业提供服务,而用户再也不用为那些员工创建用户账户或者重设密码。如果这还不够,使用这一应用的用户也不再需要登录应用。那将是一件多么令人兴奋的事情。ADFS需要什么?当然,活动目录联合服务还需要其它的一些配置才能使用,用户需要一些服务器执行这些功能。最基本的是联合服务器,联合服务器上运行ADFS的联合服务组件。 联合服务器的主要作用是发送来自不同外部用户的请求,它还负责向通过认证的用户发放令牌。另外在大多数情况下还需要联合代理。试想一下,如果外部网络要能够和用户内部网络建立联合协议,这就意味着用户的联合服务器要能通过Internet访问。但是活动目录联合并不很依赖于活动目录,因此直接将联合服务器暴露在Internet上将带来很大的风险。正因为这样,联合服务器不能直接和Internet相连,而是通过联合代理访问。联合代理向联合服务器中转来自外部的联合请求,联合服务器就不会直接暴露给外部。另一ADFS的主要组件是ADFS Web代理。Web应用必须有对外部用户认证的机制。这些机制就是ADFS Web代理。 ADFS Web代理管理安全令牌和向Web 服务器发放的认证cookies。在下面的文章中我们将带领大家通过一个模拟的试验环境来一起感受ADFS服务带给企业的全新感受,闲言少叙,我们下面就开始ADFS的配置试验。第1步:预安装任务要想完成下面的试验,用户在安装ADFS之前先要准备好至少四台计算机。1)配置计算机的操作系统和网络环境使用下表来配置试验的计算机系统以及网络环境。2)安装 AD DS用户使用Dcpromo工具为每个同盟服务器(FS)创建一个全新的活动目录森林,具体的名称可以参考下面的配置表。3)创建用户帐户以及资源帐户设置好两个森林后,用户就可以通过“用户帐户和计算机”(Active Directory Users and Computers )工具来创建一些帐户为下面的试验做好准备。下面的列表给出了一些例子,供用户参考:4)将测试计算机加入到适当的域按照下表将对应的计算机加入到适当的域中,需要注意的是将这些计算机加入域前,用户需要先将对应域控制器上的防火墙***用掉。第2步:安装 AD FS 角色服务,配置证书现在我们已经配置好计算机并且将它们加入到域中,同时对于每台服务器我们也已经安装好了ADFS组件。1)安装同盟服务两台计算机上安装同盟服务,安装完成后,这两台计算机就变成了同盟服务器。下面的操作将会引导我们创建一个新的信任策略文件以及SSL和证书:点击Start ,选择 Administrative Tools ,点击 Server Manager。右击 Manage Roles, 选中Add roles 启动添加角色向导。在Before You Begin 页面点击 Next。在 Select Server Roles 页选择 Active Directory Federation Services 点击Next 。在Select Role Services 选择 Federation Service 复选框,如果系统提示用户安装 Web Server (IIS) 或者 Windows Activation Service (WAS) 角色服务,那么点击 Add Required Role Services 添加它们,完成后点击 Next 。在 Choose a Certificate for SSL Encryption 页面点击 Create a self-signed certificate for SSL encryption, 点击 Next 继续,在 Choose Token-Signing Certificate 页面点击Create a self-signed token-signing certificate, 点击 Next. 接下来的Select Trust Policy 页面选择 Create a new trust policy,下一步进入 Select Role Services 页面点击 Next 来确认默认值。

如何使用saml2.0和adfs实施api与cli访问联合控制

AWS支持使用SAML(安全断言标记语言) 2.0进行身份联合。使用SAML,你可以配置你的AWS账户与你的身份提供商(IdP)整合。一旦配置,你组织的身份提供商就会对你的联合用户进行验证和授权,然后联合用户可以使用单点登录方法登录到AWS管理控制台。这不仅可以使你的用户免于记住另一个用户名和密码,也是简化了管理员的身份管理过程。当你的联合用户想访问AWS管理控制台,这种方法是有效的。但是当他们想使用AWS CLI或以程序方式调用AWS API时,将会怎么样呢?

在本文中,我将向你展示如何对你的用户实施联合的API与CLI访问。本帖中提供的举例使用了AWS Python SDK工具和一些附加的客户端侧的集成代码。如果你有用户需要这种访问控制,实施该方案可以使你对这些用户的管理轻松自如。

让我们从快速地了解我们的目标开始。

janedoe@Ubuntu64:/tmp$ ./samlapi.py

Username: ADjanedoe

Password: ****************

Please choose the role you would like to assume:

[ 0 ]: arn:aws:iam::012345678987:role/ADFS-Administrators

[ 1 ]: arn:aws:iam::012345678987:role/ADFS-Operators

Selection: 1

---------------------------------------------------------------

Your new access key pair has been stored in the aws configuration

file /home/janedoe/.aws/credentials under the saml profile.

Note that it will expire at 2015-05-26T17:16:20Z.

After this time you m*** safely rerun this script to refresh your

access key pair.

To use this credential call the aws cli with the --profile option

(e.g. aws --profile saml ec2 describe-instances).

---------------------------------------------------------------

Simple API example listing all s3 buckets:

[Bucket: mybucket1, Bucket: mybucket2, Bucket: mybucket3,

Bucket: mybucket4, Bucket: mybucket5]

从上面的输出结果中我们清楚地看到了什么?

1. 系统提示联合用户输入Active Directory(动态目录)证书。这些证书用来与配置的IdP进行比较以对用户进行验证和授权。

2. 系统检查返回的SAML断言,确定用户被授权承担的IAM(身份及访问管理)角色。用户选择了她期望的角色后,系统使用AWS STS(安全令牌服务)提取临时的安全证书。

3. 系统自动地将这些证书写入她本地的AWS证书文件,她可以开始发出AWS API或CLI调用指令。

4. 得到该样例,为你的组织对样例进行定制后,你就可以在保持AWS IAM服务提供的控制的同时,使用组织的证书来提高你的AWS API和CLI界面的能力和自动化程度。

本帖将会集中讲述如何使用微软动态目录联合服务(AD FS)。但是如果你正在使用其他供应商的同类产品,请不要感到失望因为基本的组件应该可以与其他常见的IdP配合运转的。

为了能够紧跟本帖的讲述,你必须已经:

入门

1. 使用你的组织证书将AD FS正确地与你的AWS账户进行了集成,以便能够访问控制台。如果你需要设置说明,请参考 Enabling Federation to AWS using Windows Active Directory, ADFS, and SAML 2.0。

2. 已在本地工作站安装了新版本(2.36或更新)的AWS Python SDK工具。

3. 获取了最小限度的AWS证书文件(例如:~/.aws/credentials),并将文件中的如下内容调整到你首选的区域和输出格式。

重要提示:AWS访问密钥对并没有在上面的结构中配置因为最初的AWS STS调用是由值得信任的IdP返回的SAML断言进行验证的。所有后续的API/CLI调用都是由包含在AWS STS令牌中的密钥对进行验证的。想要获取更多信息,请参考 Giving AWS Console Access to Federated Users Using SAML

首先,你需要安装不属于Python核心发行版的两个模块,具体说,就是be***tifulsoup4和requests-ntlm。有若干种方法可以安装着两个模块,但是包含在Python 2.7.9或更新版本中的pip工具,使模块安装变得很容易。你只需运行如下两个命令即可:

[def***lt]

output = json

region = us-west-2

aws_access_key_id =

aws_secret_access_key =

首先运行下面的命令:

upip install be***tifulsoup4/u

然后运行下面的命令:

pip install requests-ntlm

你应该会得到一些与如下截图类似的输出结果:

AWS联合过程利用IdP发起的登录方法。在最后的准备步骤中,你需要确定具体的被用来引发登录的URL。以基本的IdP引发登录的URL为起点(该URL就是你用来联合访问SAML依赖各方的URL,SAML依赖各方包括AWS管理控制台)。在本例中,我使用的是AD FS 2.0。在该版本中,URL的格式为of;fqdn/adfs/ls/IdpInitiatedSignOn.aspx。如果我将该URL输入浏览器的地址栏,我将会看到一个网站选择页面,

为了构造你所需的URL,将原来的IdP引发登录URL与查询字符串?loginToRp=urn:amazon:webservices连接。构造好的URL应呈现的形式是of;fqdn/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices。保存该URL因为在后面的叙述中它将被称为idpentryurl变量。如果你将这个串联的URL输出浏览器的地址栏,你应该仍然可以实现AD FS IdP引发登录过程。但是,你绕过了网站选择页面,在验证完演练所需的URL后直接进入AWS管理控制台。如果感兴趣的话,你可以访问Microsoft’s website去查看关于查询字符串的文档。

重要提示:务必密切注意URL中主机名称的大写。AD FS在验证过程中会使用主机名称,任何在大小写方面的不匹配都会导致验证失败。

检查代码

既然你已经浏览了上面“入门”部分的步骤,你可以开始组合控制联合API与CLI访问的集成代码了。我将会详细地解释这一过程以便你可以跟随我的节奏。首先,让我们进行一些基本的导入和变量设置。

#!/usr/bin/python

import sys

import boto.sts

import boto.s3

import requests

import getpass

import ConfigParser

import base64

import xml.etree.ElementTree as ET

from bs4 import Be***tifulSoup

from os.path import expanduser

from urlparse import urlparse, urlunparse

from requests_ntlm import HttpNtlmAuth

##########################################################################

# Variables

# region: The def***lt AWS region that this script will connect

# to for all API calls

region = 'us-west-2'

# output format: The AWS CLI output format that will be configured in the

# saml profile (affects subsequent CLI calls)

outputformat = 'json'

# awsconfigfile: The file where this script will store the temp

# credentials under the saml profile

awsconfigfile = '/.aws/credentials'

# SSL certificate verification: Whether or not strict certificate

# verification is done, False should only be used for dev/test

sslverification = True

# idpentryurl: The initial URL that starts the ***thentication process.

idpentryurl = ';fqdn/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'

##########################################################################

将上述代码中的变量调整为针对你的具体的区域(如us-west-2,us-east-1等等)和格式喜好(例如json,文本,或表格),然后插入本帖中上一部分变量idpentryurl的值。

基本环境搭建起来后,提示用户,从标准输入中检索用户的证书。在本帖的后面我将会讨论我们是如何支持其他的证书形式的。

# Get the federated credentials from the user

print "Username:",

username = raw_input()

password = getpass.getpass()

print ''

位于***行打印语句“Username”后面的逗号可能看起来像是一个缺陷,实际上它是Python为了防止***行打印语句添加换行符而使用的小技巧。你也将会注意到getpass()这一方法的使用,这一方法是为了防止密码被显示在输出结果中。

下一步,我们使用Python请求模块组合验证信息,用公式表示向IdP发送的HTTPS请求,正如下面的片段所示。假设验证成功,AD FS返回的响应消息会包含SAML断言。

如何搭建一套Azure AD与ADFS集成身份的环境

1. 一个公网IP地址,这个公网IP地址是需要发布ADFS服务,从而在从Azure

AD重定向到ADFS服务时能找到。实际环境中,可以使用ADFS Proxy或者Windows Application

Proxy,或者其他反向代理将ADFS发布出来。测试环境中,我们会Azure的虚拟机,因为Azure虚拟机所在的Cloud

Service提供了一个公网地址。

2. 一个公网证书,这是客户端通过https的ADFS服务时需要的证书,测试环境中我们就不适用公网证书了,使用自建的CA服务器,缺点是客户端访问会报证书错误,或者得提前在客户端安装证书,但这不影响实际功能使用。

3. DC

4. ADFS

5. 公网域名

以下测试环境中需要使用Azure,至少需要一个Azure订阅,具体步骤如下

1. 首先登陆Azure的门户,在网络中创建一个虚拟网络

2. 创建完成后,我们创建2个Server 2012 r2 虚拟机,一台为DC,一台为ADFS。在虚拟机的设置里,网络选择我们刚刚创建的CorpNet,针对ADFS,我们需要在端口上把HTTPS和HTTP都打开。

3. 在创建过程中,我们先下载一下Azure的PowerShell组件,我们需要为这两个虚拟机固定一下IP地址。

注:Azure Powershell是需要.net framework 4.5的,所以如果你目前的PC是Win7或者更老版本的话,请安装.NET framework 4.5

4.

使用MSTSC远程登陆创建好的DC和ADFS,查看这两台服务器的目前分配得到的IP地址,这是用我们创建的CorpNet的DHCP分配的,我们需要

让他们固定使用这两个IP,以免在虚拟机重启后得到不一样的IP。特别是DC,我们必须保证DC和上面的DNS始终是用一个IP地址。

5. 记录下来后打开我们安装好的Azure PowerShell,首先连接到我们的Azure账户

如果是中国的Azure

Add-AzureAccount -Environment azurechinacloud

如果是Global的Azure

Add-AzureAccount

6. 登录后,使用以下命令设定固定IP,替换你自己的虚拟机名字以及IP地址。

Get-AzureVM -Name corp-dc -ServiceName corp-dc| Set-AzureStaticVNetIP -IPAddress 10.0.0.6 | Update-AzureVM

Get-AzureVM -Name corp-adfs -ServiceName corp-adfs | Set-AzureStaticVNetIP -IPAddress 10.0.0.5 | Update-AzureVM

注: 这里我们设定的是固定的内部IP,Azure支持设定固定的外部IP地址,这里不详细介绍,具体方法请参阅

7. 设置完成后,我们在DC上,安装DC、DNS的角色。忽略关于DNS的非静态IP的报错。

8. 安装完成后,在服务器管理器中选择将此台服务器提升为域控。创建一个新的域。其中在域名这一块,填入你公网域名相同的名字,或者子域名。

我拥有jashuang.cn,我这里使用了子域名corp1.jashuang.cn作为我的域,你也可以使用一级域名。

然后一路下一步直到安装。

9. 安装完成后重启DC。

10. 然后我们在DC上安装我们的证书服务,然后一路下一步直到安装。

11. 安装完成后,选择配置,在角色服务上,选择证书颁发机构,然后一路下一步,然后选择配置。

12. 完成后,我们需要新建一张SSL的证书,用户ADFS的HTTPS通信。运行命令certsrv.msc,在证书模板上右击,选择管理

13. 在新窗口招到web服务器证书,右击选择复制模板。在常规标签项,命名为ADFS SSL。

进入安全选项卡,添加 domain users,domain computers,权限选择注册和读取

进入使用者名称 选项卡, 使用者名称格式变为:公用名,勾选 DNS 名

14. 回到证书颁发机构,右击证书模板,点击新建要颁发的证书模板,选择ADFS SSL

15. 然后,运行命令domain.msc,打开域和信任管理窗口,我们需要添加UPN名。右击Active Directory域和信任关系,选择属性。在UPN标签项填入我们的域名,点击添加 – 应用 – 完成。

15. 到此,我们把DC配置完成了。现在先登录到Azure的门户,打开我们之前创建的虚拟网络,在配置选项里,我们需要指定虚拟网络的DNS,将他指向DC,再添加一个指向Azure public DNS的记录(否则外网无法解析),然后点击保存。

16. 重启一下ADFS。然后将ADFS加入域中。重启后使用域管理员登录。

17. 现在我们在ADFS的HOST文件(路径C:windowssystem32driversetcHosts)中加2条DNS记录,按照自己的域名和DC名以及IP地址加入这两条记录,主要是为了防止DNS解析出现问题时能找到DC。

corp1.jashuang.cn 10.0.0.6

corp-dc.corp1.jashuang.cn 10.0.0.6

18. 之后需要安装之前我们的证书。打开 MMC, 点击文件-添加、删除管理单元,选择计算机账户, 选择本地计算机,点击确定,右击 个人,点击 所有任务—申请新证书,一直点击下一步,在证书注册中选择ADFS SSL。然后选择注册

19 安装证书完成后,在DC服务器上打开Powershell,运行以下命令。

Add-kdsrootKey –effectivetime (get-date).addhours(-10)

New-adserviceaccount fsgmsa –dnshostname corp-adfs.corp1.jashuang.cn –serviceprincipalnames http/corp-adfs.corp1.jashuang.cn

20. 然后回到ADFS,在ADFS上安装ADFS角色

21. 完成后,点击配置ADFS。在指定服务属性里,选择我们之前导入的证书,在服务账号选择fsgmsa,然后一直下一步直到配置完成。

23. 配置完成后,安装Web服务器角色,这主要是为了安装IIS管理器。

24. 安装完成后,打开IIS管理器, 右击Def***lt Website,选择编辑绑定,点击添加,然后添加HTTPS,证书选择之前我们导入的证书。

22. 配置完成后,可以打开IE,输入以下网址,尝试登录,简单测试ADFS是否正常。

大侠们,请教一下问题,我的设备管理器--非即插即用驱动程序 里面的adfs使用不正常,有什么办法安装好吗?

打开我的电脑,然后打开系统安装的分区,在文件夹选项的常规里面选择:显示所有文件。把下面隐藏受保护的系统文件前面的勾去掉,然后到系统安装的分区里面看看有没有病毒文件,看看有没有一个AUTO开头的可执行文件,如果有,删掉。在试试看USB能用不

高人请进:关于AutoCAD的adfs字体!解决问题定赏分!

你想找的应该是

adfs.shx

的字体文件,如果有的话把它放在

AutoCAD

程序目录下的fonts

子目录,之后运行即可;

如果没有此文件,可用选用其他SHX

字体代替,但是一定要匹配。

也就是说,adfs.shx

本身是简体中文的,就要用简体的SHX来代替,如hztxt.shx

或者

fsd.shx

等,这两个最常用。

如果是繁体中文的可用

d***ux.shx

d***um.shx

等等,来代替。

当然每一种字体都有它的特性,出来的效果是不同的。

如果选用了不匹配的字体,你打开的文件会出现乱码或错字。

祝好运!

ADFS是什么?

活动目录联合服务(ADFS)

什么是ADFS?

ADFS将活动目录拓展到Internet。要理解这一点,可以考虑一般活动目录设施的工作原理。当用户通过活动目录认证时,域控制器检查用户的证书。证明是合法用户后,用户就可以随意访问Windows网络的任何授权资源,而无需在每次访问不同服务器时重新认证。

ADFS将同样的概念应用到Internet. 我们都知道Web应用访问位于SQL Server或其他类型后端资源上的后端数据。对后端资源的安全认证问题往往比较复杂。可以有很多不同的认证方法提供这样的认证。例如,用户可能通过RADIUS(远程拨入用户服务认证)服务器或者通过应用程序代码的一部分实现所有权认证机制。

这些认证机制都可实现认证功能,但是也有一些不足之处。不足之一是账户管理。当应用仅被我们自己的员工访问时,账户管理并不是个大问题。但是,如果您的供应商、客户都使用该应用时,您会突然发现您需要为其他企业的员工建立新的用户账户。不足之二是维护问题。当其他企业的员工离职,雇佣新员工时,您需要删除旧的账户和创建新的账户。密码也是一个问题。一旦应用配置完成,您要不断的为那些甚至没有为您公司工作的人员重新修改密码。

关于adfs和爱的发声练习的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发表评论
0评