ad文件服务器部署,AD 集成 – 配置 ADFS 登陆 - Seafile 服务器用户手册

要求

要想使用 ADFS 登陆到 Seafile,需要以下组件:

1、安装了 ADFS 的windows服务器。安装 ADFS 和相关配置详情请参考 本文。

2、对于 ADFS 服务器的SSL有效证书,在这里我们使用 adfs-server.adfs.com 作为域名示例。

3、对于 seafile 服务器的SSL有效证书,在这里我们使用 demo.seafile.com 作为域名示例。

准备证书文件

1、SP(Service Provider) 的 x.509 证书

可以通过以下方式获取:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout sp.key -out sp.crt

x.509 证书用来签署和加密诸如SAML的NameID和Metadata等元素。

然后将这两个文件复制到 /seahub-data/certs。如果证书文件夹不存在,请创建它。

2、IdP(Identity Provider) 的 x.509 证书

登陆到 ADFS 服务器并且打开 ADFS 管理。

双击 Service 并选择 Certificates。

导出 Token-Signing 证书:

右击证书并选择 View Certificate。

选择 Details 选项卡。

单击 Copy to File (选择 DER encoded binary X.509)。

将此证书转换为PEM格式,重命名为 idp.crt

复制它到 /seahub-data/certs。

准备 IdP 元数据文件

在 seafile 服务器上安装

对于 Ubuntu 16.04

sudo apt install libxmlsec1

sudo pip install cryptography djangosaml2

配置seafile

添加以下配置到 seahub_settings.py

from os import path

import saml2

import saml2.saml

CERTS_DIR = '/seahub-data/certs'

SP_SERVICE_URL = 'https://demo.seafile.com'

XMLSEC_BINARY = '/usr/local/bin/xmlsec1'

ATTRIBUTE_MAP_DIR = '/seafile-server-latest/seahub-extra/seahub_extra/adfs_auth/attribute-maps'

SAML_ATTRIBUTE_MAPPING = {

'DisplayName': ('display_name', ),

'ContactEmail': ('contact_email', ),

'Deparment': ('department', ),

'Telephone': ('telephone', ),

}

ENABLE_ADFS_LOGIN = True

EXTRA_AUTHENTICATION_BACKENDS = (

'seahub_extra.adfs_auth.backends.Saml2Backend',

)

SAML_USE_NAME_ID_AS_USERNAME = True

LOGIN_REDIRECT_URL = '/saml2/complete/'

SAML_CONFIG = {

# full path to the xmlsec1 binary programm

'xmlsec_binary': XMLSEC_BINARY,

'allow_unknown_attributes': True,

# your entity id, usually your subdomain plus the url to the metadata view

'entityid': SP_SERVICE_URL + '/saml2/metadata/',

# directory with attribute mapping

'attribute_map_dir': ATTRIBUTE_MAP_DIR,

# this block states what services we provide

'service': {

# we are just a lonely SP

'sp' : {

"allow_unsolicited": True,

'name': 'Federated Seafile Service',

'name_id_format': saml2.saml.NAMEID_FORMAT_EMAILADDRESS,

'endpoints': {

# url and binding to the assetion consumer service view

# do not change the binding or service name

'assertion_consumer_service': [

(SP_SERVICE_URL + '/saml2/acs/',

saml2.BINDING_HTTP_POST),

],

# url and binding to the single logout service view

# do not change the binding or service name

'single_logout_service': [

(SP_SERVICE_URL + '/saml2/ls/',

saml2.BINDING_HTTP_REDIRECT),

(SP_SERVICE_URL + '/saml2/ls/post',

saml2.BINDING_HTTP_POST),

],

},

# attributes that this project need to identify a user

'required_attributes': ["uid"],

# attributes that may be useful to have but not required

'optional_attributes': ['eduPersonAffiliation', ],

# in this section the list of IdPs we talk to are defined

'idp': {

# we do not need a WAYF service since there is

# only an IdP defined here. This IdP should be

# present in our metadata

# the keys of this dictionary are entity ids

'https://adfs-server.adfs.com/federationmetadata/2007-06/federationmetadata.xml': {

'single_sign_on_service': {

saml2.BINDING_HTTP_REDIRECT: 'https://adfs-server.adfs.com/adfs/ls/idpinitiatedsignon.aspx',

},

'single_logout_service': {

saml2.BINDING_HTTP_REDIRECT: 'https://adfs-server.adfs.com/adfs/ls/?wa=wsignout1.0',

},

},

},

},

},

# where the remote metadata is stored

'metadata': {

'local': [path.join(CERTS_DIR, 'idp_federation_metadata.xml')],

},

# set to 1 to output debugging information

'debug': 1,

# Signing

'key_file': '',

'cert_file': path.join(CERTS_DIR, 'certs/idp.crt'), # from IdP

# Encryption

'encryption_keypairs': [{

'key_file': path.join(CERTS_DIR, 'certs/sp.key'), # private part

'cert_file': path.join(CERTS_DIR, 'certs/sp.crt'), # public part

}],

'valid_for': 24, # how long is our metadata valid

}

配置 ADFS 服务

添加 Relying Party Trust

Relying Party Trust 是 Seafile 和 ADFS 之间的连接。

登陆到 ADFS 服务器并打开 ADFS 管理界面。

双击 Trust Relationships,然后右键 Relying Party Trusts,选择 Add Relying Party Trust…。

选择 Import data about the relying party published online or one a local network,在 Federation metadata address 中输入 https://demo.seafile.com/saml2/metadata/

然后 Next 直到 Finish。

添加 Relying Party Claim Rules

Relying Party Claim Rules 是用于windows域中seafile和用户的通信。

Important:在windows域中的用户必须要设置了 E-mail 值。

右键点击 relying party trust 并且选择 Edit Claim Rules…。

在 Issuance Transform Rules Add Rules…

选择 Send LDAP Attribute as Claims 作为申请规则模版来用。

给 claim 一个名称,例如:LDAP Attributes。

将 Attribute Store 设置为 Active Directory,LDAP Attribute 设置为 E-Mail-Addresses,Outgoing Claim Type 设置为 E-mail Address。

选择 Finish。

再次单击 Add Rule…。

选择 Transform an Incoming Claim。

给它一个名字例如:Email to Name ID。

输入的 claim 类型应该是 E-mail Address (它必须跟 rule #1 中的Outgoing Claim Type 相匹配)。

Outgoing claim 的类型是 Name ID (这是seafile配置策略中的要求 'name_id_format': saml2.saml.NAMEID_FORMAT_EMAILADDRESS)。

Outgoing name ID 格式为 Email。

通过所有的 claim 的值 并且单击 Finish。

测试

重启服务后,你可以打开一个web浏览器并且输入 https://demo.seafile.com,在登陆对话框中应该有一个 adfs 按钮。单击该按钮将重定向到 ADFS 服务器(adfs-server.adfs.com),如果用户名密码正确,你将被重定向到seafile主页。

对于descktop客户端,只需要在”Add a new account”窗口点击”Shibboleth Login”,输入 https://demo.seafile.com,单击 OK 按钮将会打开一个新的窗口显示ADFS服务的登录页面,如果用户名和密码正确,窗口将关闭并显示seafile资料库面板。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7映射网络驱动器消失了_win7怎么映射网络驱动器|win7设置网络驱动器的方法...

2015-08-21 15:57:15近来,有一些刚刚升级windows10系统的用户向小编咨询在新系统中该如何创建映射网络驱动器。其实,方法非常简单,接下来,小编就向大家分享win10系统创建映射网络驱动器的具体方法...2015-05-15 19:27:26Win7系统怎…

NTC热敏电阻基础以及应用和选择(转)

源:NTC热敏电阻基础以及应用和选择 NTC被称为负温度系数热敏电阻,是由Mn-Co-Ni的氧化物充分混合后烧结而成的陶瓷材料制备而来,它在实现小型化的同时,还具有电阻值-温度特性波动小、对各种温度变化响应快的特点,可被用…

graphic头文件函数_graphics.h头文件

graphics.h头文件是一款tc操作必备组件。graphics.h头文件主要是运行在win8、win7操作系统上,为用户提供了非常多函数类型,用户只需使用tc编译就可以使用这个软件,是用户进行tc编辑时不可缺少的操作工具。graphics.h头文件函数范围&#xff1…

homeomorphic 同胚 释义

简介 在拓扑学中,两个流形,如果可以通过弯曲、延展、剪切(只要最终完全沿着当初剪开的缝隙再重新粘贴起来)等操作把其中一个变为另一个,则认为两者是同胚的。如:圆和正方形是同胚的,而球面和环面就不是同胚的。 参考链…

流形 非流形 释义

非流形边 A non-manifold edge has more than two incident triangles. 就是一个边由超过两个三角形相交。就是非流形边。 非流形顶点 比如两个三棱锥相接触的那个顶点就是非流形顶点。 以此可以逆推出流形是什么意思。 参考 书籍 [Polygon mesh processing] 转载于:https://ww…

mysql 插入数据 自增长_如何在MYSQL插数据 ID自增

2种解决办法1.修改你的数据库表,将ID设为自增长,注:只有主键才可以设置为自增长例:CREATE TABLE message (id INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));2.代码中进行处理Statement ps;ResultSet rs;int id 0;........…

MSN无法登陆,服务暂时不可用(错误码:80048051)

好几次MSN突然就登陆不了,一次是改了系统时间,这个好办,你改成当前日期时间即可; 还有一个可能就是脱机工作: 請依照以下步驟進行除錯: 1. 關閉Windows Live Messenger 先關閉你的MSN,在右下角找…

drawboard pdf拆分文件_请收藏!这是一份最全的PDF问题解决方案。

晚上好呀,我是大梦。最近因为赶书稿和论文缘故,时常要翻看许多PDF文件,复制摘录写东西,忽然发现好不方便,从PDF复制过来的文字到Word中变成了乱码?一些扫描版PDF根本无法复制而且还留有许多白边&#xff0c…

Java基础教程——线程通信

线程通信:等待、唤醒 Object方法这些方法在拥有资源时才能调用notify唤醒某个线程。唤醒后不是立马执行,而是等CPU分配wait等待,释放锁,不占用CPU资源notifyAll唤醒全部等待的线程重点:资源的有效利用 生产一个&#x…

python requests cookies请求_python+requests实现接口测试 - cookies的使用

在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息,会造成识别失败。 如一些需要用户登录以后才能访问的页面。import requestsmyaddress_urlhttp://xxx.com/api/v1/myaddress…

kafka命令及启动

默认内网访问,要在外网访问的话,需要在修改config/server.properties中的配置 将listeners和advertised.listeners的值用主机名进行替换,在外用使用java进行生产者或消费者连接的时候,不填写具体的IP,填写安装kafka的主…

编程判断元素归类_编程练习-判断是否为易混淆数

题目来源:LeetCode给定一个数字 N,当它满足以下条件的时候返回 true:把原数字旋转180以后得到新的数字。如 0, 1, 6, 8, 9 旋转 180 以后,得到了新的数字 0, 1, 9, 8, 6 。2, 3, 4, 5, 7 旋转 180 后,得到的不是数字。易混淆数字 …

vue引入51la流量监控

main.js router.afterEach( ( to, from, next ) > {setTimeout(()>{var _hmt _hmt || [];(function() {//每次执行前,先移除上次插入的代码document.getElementById(51_la) && document.getElementById(51_la).remove();var hm document.createEle…

斯蒂夫乔布斯传 读后感

斯蒂夫乔布斯传 读后感 失败和命运,成长和感受刺激着乔布斯成长。他和普通人一样。但是,不一样的环境,不一样的职位,不一样的体验给了他不一样的生命。所以,慢慢成长吧。当你的经历足够支撑你的命运时,你会站到你想要的…

cad画直角命令_炸了,CAD fro命令配合tk命令,极轴追踪无敌!

文尾左下角阅读原文看视频教程好课推荐:零基础CAD:点我CAD室内:点我 周站长CAD:点我CAD机械:点我 Bim教程:点我CAD建筑:点我CAD三维:点我全屋定制:点我 ps教程&#xff1…

linux frp 内网穿透 nginx反向代理

wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz frps.ini 服务端 有外网IP服务器 frpc.ini 客户端 局域网服务器 服务端: vi frps.ini [common] bind_port 8700 token asdasdasdasdasdasdasd vi start_frp_server.s…

[转载]Tensorflow 的reduce_sum()函数的axis,keep_dim这些参数到底是什么意思?

转载链接:https://www.zhihu.com/question/51325408/answer/125426642来源:知乎 这个问题无外乎有三个难点: 什么是sum什么是reduce什么是维度(indices, 现在均改为了axis和numpy等包一致)sum很简单,就是求和,那么问题…

多多进宝推广团队_多多进宝推广形式及推手寻找、佣金结算方式是怎样的?

多多进宝是拼多多下的一款推广工具,主要是针对于想要提高自己店铺产品的销量以及获取更多流量的拼多多商家来展开的!但是,目前为止还有很多拼多多商家对多多进宝的一个运用不太了解,以至于有一些拼多多商家在使用多多进宝时有很大…

rtsp 通过 浏览器播放

安装docker ffmpeg https://blog.csdn.net/m1f2c3/article/details/93624289 docker pull jrottenberg/ffmpeg docker run -it --entrypointbash jrottenberg/ffmpeg docker start ... 下载jsmpeg npm install -g ws npm install ws npm install http-server -g 进入j…

025 程序的循环结构

目录 一、概述二、遍历循环三、遍历循环的应用3.1 计数循环(N次)3.2 计数循环(特定次)3.3 字符串遍历循环3.4 列表遍历循环3.5 文件遍历循环四、无限循环五、循环控制保留字5.1 break 和 continue5.1.1 for5.1.2 while六、循环的高级用法6.1 循环的扩展6.1.1 for6.1.2 while七、…