# 笔记本 授权
原文链接 : [http://zeppelin.apache.org/docs/0.7.2/security/notebook_authorization.html](http://zeppelin.apache.org/docs/0.7.2/security/notebook_authorization.html)
译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10031004](http://www.apache.wiki/pages/viewpage.action?pageId=10031004)
贡献者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)
## 概述
我们假设有一个**Shiro Authentication**组件,它将用户字符串和一组组字符串与每个NotebookSocket相关联。如果您尚未设置身份验证组件,请先检查[Apache Zeppelin的Shiro身份验证](http://www.apache.wiki/pages/viewpage.action?pageId=10030709)。
[ ](http://zeppelin.apache.org/docs/0.7.2/security/notebook_authorization.html#authorization-setting)
## 授权设置
您可以在每个笔记本中设置Zeppelin笔记本的权限。当然只有**笔记本拥有者**可以改变这个配置。只需单击**锁定图标**,然后打开笔记本中的权限设置页面。
您可以看到,每个Zeppelin笔记本有3个实体:
* Owners ( users or groups )
* Readers ( users or groups )
* Writers ( users or groups )
![](https://img.kancloud.cn/82/5a/825affd1393168cb8c2775f20be6faf6_566x185.jpg)
用逗号分隔的**用户**和**组中**配置的`conf/shiro.ini`文件填写每个表单。如果表单为空(*),则表示任何用户都可以执行该操作。
如果没有**读**权限的人尝试访问笔记本电脑,或者没有**写**权限的人正在尝试编辑笔记本,则Zeppelin将要求登录或阻止用户。
![](https://img.kancloud.cn/ba/d1/bad1884a722162b5dd1a718d0fd6d650_566x207.jpg)
## 单独的笔记本工作区(公共和私人)
默认情况下,授权权限允许其他用户查看新创建的笔记,意思是工作区`public`。这种行为是可控的,可以通过`ZEPPELIN_NOTEBOOK_PUBLIC`在`conf/zeppelin-env.sh`或通过`zeppelin.notebook.public`属性中的任何一个变量进行设置`conf/zeppelin-site.xml`。因此,为了使新创建的笔记只出现在您的`private`工作空间默认情况下,你可以设定`ZEPPELIN_NOTEBOOK_PUBLIC`到`false`你`conf/zeppelin-env.sh`如下:
```
export ZEPPELIN_NOTEBOOK_PUBLIC="false"
```
或者设置`zeppelin.notebook.public`属性`false`中`conf/zeppelin-site.xml`,如下所示:
```
<property>
<name>zeppelin.notebook.public</name>
<value>false</value>
<description>Make notebook public by default when created, private otherwise</description>
</property>
```
在幕后,当您创建一个新的笔记时,该`owners`字段将填充当前用户,`readers`并将`writers`字段留空。具有至少一个空授权字段的所有注释都被视为处于工作`public`区。因此,当将`zeppelin.notebook.public`(或对应`ZEPPELIN_NOTEBOOK_PUBLIC`)设置为false时,新创建的注释`readers`和`writers`现有用户填充的字段,使笔记在工作区中`private`显示。
[ ](http://zeppelin.apache.org/docs/0.7.2/security/notebook_authorization.html#how-it-works)
## 怎么运行的
在本节中,我们将介绍笔记本授权在后台方面如何工作的细节。
### NotebookServer
该[NotebookServer](https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java)每一个笔记本电脑业务划分为三大类:**读**,**写**,**管理**。在执行笔记本操作之前,它会检查用户和与之关联的组是否`NotebookSocket`具有权限。例如,在执行**Read**操作之前,它检查用户和组是否至少有一个属于**Reader**实体的实体。
### Notebook REST API调用
Zeppelin 对笔记本电脑权限信息执行[REST API调用](https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java)。在后端,Zeppelin获取连接的用户信息,如果与当前用户关联的用户和组具有至少一个属于笔记本的所有者实体的实体,则可以进行操作。
- 快速入门
- 什么是Apache Zeppelin?
- 安装
- 配置
- 探索Apache Zeppelin UI
- 教程
- 动态表单
- 发表你的段落
- 自定义Zeppelin主页
- 升级Zeppelin版本
- 从源码编译
- 使用Flink和Spark Clusters安装Zeppelin教程
- 解释器
- 概述
- 解释器安装
- 解释器依赖管理
- 解释器的模拟用户
- 解释员执行Hook(实验)
- Alluxio 解释器
- Beam 解释器
- BigQuery 解释器
- Cassandra CQL 解释器
- Elasticsearch 解释器
- Flink 解释器
- Geode/Gemfire OQL 解释器
- HBase Shell 解释器
- HDFS文件系统 解释器
- Hive 解释器
- Ignite 解释器
- JDBC通用 解释器
- Kylin 解释器
- Lens 解释器
- Livy 解释器
- Markdown 解释器
- Pig 解释器
- PostgreSQL, HAWQ 解释器
- Python 2&3解释器
- R 解释器
- Scalding 解释器
- Scio 解释器
- Shell 解释器
- Spark 解释器
- 系统显示
- 系统基本显示
- 后端Angular API
- 前端Angular API
- 更多
- 笔记本存储
- REST API
- 解释器 API
- 笔记本 API
- 笔记本资源 API
- 配置 API
- 凭据 API
- Helium API
- Security ( 安全 )
- Shiro 授权
- 笔记本 授权
- 数据源 授权
- Helium 授权
- Advanced ( 高级 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虚拟机上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 贡献 )
- Writing a New Interpreter ( 写一个新的解释器 )
- Writing a new Visualization (Experimental) ( 编写新的可视化(实验) )
- Writing a new Application (Experimental) ( 写一个新的应用程序( 实验 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 贡献( 代码 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 贡献(website) )