# 筆記本 授權
原文鏈接 : [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 )

用逗號分隔的**用戶**和**組中**配置的`conf/shiro.ini`文件填寫每個表單。如果表單為空(*),則表示任何用戶都可以執行該操作。
如果沒有**讀**權限的人嘗試訪問筆記本電腦,或者沒有**寫**權限的人正在嘗試編輯筆記本,則Zeppelin將要求登錄或阻止用戶。

## 單獨的筆記本工作區(公共和私人)
默認情況下,授權權限允許其他用戶查看新創建的筆記,意思是工作區`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) )